如下所示的转换器将导致2008 visual studio designer不显示xaml,并且出现“指定的转换无效”错误。例外。WPF Converter转换器导致Visual Studio设计器异常
public class ItemsVisibilityToGridColumnWidthConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
//THE TWO OFFENDING LINES...
var itemsVisibility = (Visibility)values[0];
var orientation = (Orientation)values[1];
if (orientation == Orientation.Horizontal && itemsVisibility != Visibility.Visible)
{
return new GridLength(0);
}
return new GridLength(4, GridUnitType.Star);
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
改变使用方法演员如能解决此问题:
static class EnumCaster
{
internal static Orientation CastAsOrientation(object value)
{
if (value is Enum)
{
return (Orientation)value;
}
return Orientation.Horizontal;
}
internal static Visibility CastAsVisibility(object value)
{
if (value is Enum)
{
return (Visibility)value;
}
return Visibility.Visible;
}
}
我的问题是,跆拳道是错的Visual Studio的设计师?而且,是否有更好的方式将这些对象投射到相应的枚举中,以便设计者不会抛出合适的东西?
“wtf与Visual Studio设计器错误吗?”我有一个列表,但这个互联网太小,不能容纳它。 – itowlson 2010-01-08 21:03:25
您可以在使用此转换器的位置发布XAML吗? – 2010-01-08 21:22:11