如下所示的轉換器將導致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