在我的情况下,我必须在ItemsControl
点集合中显示。每个Point都有几个NumericValue类型的属性,它们最终是Nullable<double>
的包装。
public class Point
{
NumericValue Proposal { get; set; }
NumericValue Accepted { get; set; }
NumericValue Approved { get; set; }
... etc.
}
我将Point的所有属性显示为TextBoxes。 NumericValue类具有IsNegative属性,如果IsNegative = True,我希望相应Textbox的Foreground为红色。
但是,我不希望在每个TextBox的样式中定义此规则,而是使用绑定到IsNegative的DataTrigger创建单个样式。
简化的XAML如下所示。
<ItemsControl ItemsSource="{Binding Path=Points}">
...
<TextBox Text="{Binding Path=Data.Proposal.Value}" ... />
<TextBox Text="{Binding Path=Data.Accepted.Value}" ... />
...
</ItemsControl>
请帮我解决该单一样式的DataTrigger的绑定定义。
答案 0 :(得分:0)
使用WPF TextBlock Negative number in red这样的转换器
<ItemsControl ItemsSource="{Binding Path=Points}">
...
<TextBox Text="{Binding Path=Data.Proposal.Value}" Foreground="{Binding Data.Proposal.IsNegative, Converter={StaticResource valueToBackground}}" />
...
</ItemsControl>
答案 1 :(得分:0)
您可以关注How to: Conditional formatting using XAML in WPF。我认为这对你有所帮助。