Eeerrr!这让我疯了,我有一个自定义值转换器,它接受一个int并返回一个SolidColorBrush,如果我在VS中打开项目并手动将其键入XAML然而表达式混合(4)看不到它,它工作正常它,它看到我所有其他转换器就好了。我仔细检查了二进制文件是否在正确的文件夹中(我们有不同的构建配置,这可能是一个问题)...我被卡住 - 有人可以看到这个转换器代码的任何问题。现在记住转换器在另一个组件中,但这就是所有这些,我可以轻松浏览到它们并使用它们没有问题。
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int conditionType = (int)value;
switch (conditionType)
{
case 1:
return new SolidColorBrush(Color.FromRgb(241, 230, 155));
case 2:
return new SolidColorBrush(Color.FromRgb(229, 107, 107));
case 3:
return new SolidColorBrush(Color.FromRgb(107, 229, 147));
case 4:
return new SolidColorBrush(Color.FromRgb(176, 107, 229));
case 5:
return new SolidColorBrush(Color.FromRgb(63, 130, 64));
case 6:
return new SolidColorBrush(Color.FromRgb(67, 143, 148));
case 7:
return new SolidColorBrush(Color.FromRgb(149, 163, 164));
default:
return new SolidColorBrush(Color.FromRgb(149, 163, 164));
}
return new SolidColorBrush(Color.FromRgb(241, 230, 155));
}
我会发布整个类名称空间,但是如果我这样做的话,这个东西就会大打折扣 - 至少在预览中! UHG!
由于
答案 0 :(得分:0)
代码本身不会阻止Blend看到转换器。转换器类是否实现了IValueConverter?它是否有无参数的公共构造函数?如果其中任何一个缺失,Blend将无法看到它。我唯一能想到的是缺少参考。它几乎必须是其中一个问题。