我有一段时间的问题,数据绑定会改变网格的颜色,不知何故它不起作用。 我在转换器中设置了一个断点并且应用程序命中了它,但是网格的背景颜色仍然不会改变,并且因为没有定义背景颜色而保持...
这是我的代码:
<ListView ItemsSource="{Binding ResultsUserControls}"
Background="{x:Null}"
BorderBrush="{x:Null}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Width="200"
Height="70"
Background="{Binding CurrentResult,Converter={StaticResource crawlerTypeToResultColorConverter}}">
<Label Content="{Binding .CurrentResult.SourceUrl}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
和转换器:
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)
{
return Binding.DoNothing;
}
答案 0 :(得分:1)
我认为这应该是
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return new SolidColorBrush(Colors.Red);
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return Binding.DoNothing;
}
答案 1 :(得分:0)
我修改了你的代码,你所拥有的应该是有用的。作为实验,从背景的绑定中删除CurrentResult:
<Grid Width="200" Height="70" Background="{Binding Converter={StaticResource crawlerTypeToResultColorConverter}}">
我怀疑你现在会看到你的红色背景。我注意到,如果XAML解析器找不到您要绑定的属性(因为它拼写错误或者不存在),它将不会进行转换。我猜想XAML解析器无法在您的项目上找到CurrentResult。