自定义值转换器未显示在表达式混合中

时间:2011-08-10 19:27:55

标签: wpf expression-blend

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!

由于

1 个答案:

答案 0 :(得分:0)

代码本身不会阻止Blend看到转换器。转换器类是否实现了IValueConverter?它是否有无参数的公共构造函数?如果其中任何一个缺失,Blend将无法看到它。我唯一能想到的是缺少参考。它几乎必须是其中一个问题。