1

乍一看,该任务类似于 WPF TextBlock Negative Number In Red

在我的情况下,我必须显示一个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 的样式中定义此规则,而是制作一个将 DataTrigger 绑定到 IsNegative的单一样式。

简化的 XAML 如下所示。

<ItemsControl ItemsSource="{Binding Path=Points}">
...
    <TextBox Text="{Binding Path=Data.Proposal.Value}" ... />
    <TextBox Text="{Binding Path=Data.Accepted.Value}" ... />
...
</ItemsControl>

请帮我解决该单一样式的 DataTrigger 的绑定定义。

4

2 回答 2

0

像这样使用WPF TextBlock Negative 中给出的红色红色转换器

 <ItemsControl ItemsSource="{Binding Path=Points}">
        ...
        <TextBox Text="{Binding Path=Data.Proposal.Value}" Foreground="{Binding Data.Proposal.IsNegative, Converter={StaticResource valueToBackground}}" />
        ...
    </ItemsControl>
于 2012-05-15T11:44:37.443 回答
0

您可以遵循How to: Conditional formatting using XAML in WPF。我想这对你会有帮助。

于 2012-05-15T12:04:02.973 回答