gpt4 book ai didi

c# - 转换器不能应用于需要 IValueConverter 类型的属性

转载 作者:行者123 更新时间:2023-11-30 15:52:01 25 4
gpt4 key购买 nike

我有一个实现 IValueConverter 但不能绑定(bind)到属性的转换器。

public class StatusToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Brushes.Red;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

在 XAML 中,我将转换器添加为资源并将绑定(bind)添加到元素

<UserControl.Resources>
<Converters:StatusToBrushConverter x:Key="StatusConverter"/>
</UserControl.Resources>

<Rectangle Fill="{Binding Status, Converter={StaticResource StatusConverter}, ElementName=userControl}"/>

但我总是报错

An object of the type "StatusToBrushConverter" cannot be applied to a property that expects the type "System.Windows.Data.IValueConverter"

但是转换器实现了接口(interface)IValueConverter。我尝试了几件事:

  • 重建、清理、构建、构建解决方案等。
  • 全新的转换器 --> 相同

以前编写的转换器可以工作。想法?

最佳答案

确保您的 StatusToBrushConverter 类通过使用其完全限定的名称真正实现了正确的 IValueConverter 接口(interface):

public class StatusToBrushConverter : System.Windows.Data.IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Brushes.Red;
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}

您也可以尝试临时使用属性元素语法进行调试:

<Rectangle>
<Rectangle.Fill>
<Binding Path="Status" ElementName="userControl">
<Binding.Converter>
<local:StatusToBrushConverter />
</Binding.Converter>
</Binding>
</Rectangle.Fill>
</Rectangle>

关于c# - 转换器不能应用于需要 IValueConverter 类型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55594517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com