我用谷歌搜索这个问题已经好几个小时了,看不出哪里出了问题。
我有下面的转换器,它只返回Brushes.Red(已经尝试过Colors.Red),但仍然没有成功。
public class ColorConverter : IValueConverter
{
private static ColorConverter instance = new ColorConverter();
public static ColorConverter Instance
{
get
{
return instance;
}
}
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return Brushes.Red;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}现在,在我的xaml中,我有以下代码:
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Value}" TextAlignment="Center" Foreground="{Binding Path=color, Converter={x:Static local:ColorConverter.Instance}}" Margin="2"/>
</StackPanel>我在顶部设置了以下名称空间:
xmlns:local="clr-namespace:Dashboard"现在,我有了以下绑定到堆栈面板的类:
public class MyClass : INotifyPropertyChanged
{
public String Value;
public Color color;
// Declare the PropertyChanged event
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
}数据绑定(值)工作得很好,但是转换器不想启动,我试图在转换程序的Convert方法中设置一个断点,但在调试时没有触发,就好像我的调试器没有被调用一样。
有谁能解释一下这件事吗?
发布于 2010-02-11 22:02:56
我很惊讶你说绑定本身是有效的,因为"Value“和"color”是字段,绑定到字段是不应该起作用的。
发布于 2010-02-11 22:01:05
好吧,这是我在我的项目中是如何做到的。我修改了我的代码以反映您正在尝试做的事情。我希望它能帮上忙。我不能回答为什么你的单例方法不能工作。
类:
public class ColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return Brushes.Red;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}在我的UserControl.Resources元素中:
<UserControl.Resources>
<local:ColorConverter x:Key="MyColorConverter" />
</UserControl.Resources>StackPanel元素:
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Value}" TextAlignment="Center" Foreground="{Binding Path=color, Converter={StaticResource MyColorConverter}}" Margin="2"/>
</StackPanel>另外,您是否检查了输出窗口以查看是否有任何错误?您还应该阅读Bea Stollnitz's article on debugging databindings。她实际上在IValueConverters上有一个特定的部分,也许有一天会对你有用。
https://stackoverflow.com/questions/2244816
复制相似问题