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

发布于 2024-11-28 23:11:13 字数 1202 浏览 0 评论 0原文

呃呃!这让我抓狂,我有一个自定义值转换器,它接受一个 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));
}

我会发布整个类名称空间,但是如果我这样做的话,这件事就会在格式上爆炸 - 至少在预览中!呃!

谢谢

Eeerrr! This is making me nuts, I have a custom value converter, it takes in an int and returns a SolidColorBrush, it works fine if I open the project in VS and manually type it into the XAML however Expression blend (4) can't see it, it sees all my other converters just fine. I double checked that the binaries are in the proper folder (we have different build configurations so that can be an issue)... I am stuck - can someone see any issue with this converter code. Now keep in mind the converter is in another assembly but that is how all of them are, I can easily browse to them and use them no problem.

 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));
}

I would post the whole class namespaces and all however this thing is blowing up on the formatting if I do that - at least in the preview! UHG!

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜声 2024-12-05 23:11:13

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

The code itself won't prevent Blend from seeing a converter. Does the converter class implement IValueConverter? Does it have a parameterless public constructor? If either of these are missing Blend won't see it. The only other thing I can think of is a missing reference. It pretty much has to be one of those issues.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文