C# 单个文本框样式以红色显示所有负数
乍一看,该任务类似于 在我的例子中,我必须在ItemsControl中显示点的集合。每个点都有几个NumericValue类型的属性,这些属性最终是围绕Nullable的包装器 我将点的所有这些属性显示为文本框。NumericValue类的属性为负,如果IsNegative=True,我希望相应文本框的前景为红色 但是,我不希望在每个文本框的样式中定义此规则,而是使用绑定到IsNegative的DataTrigger创建一个样式 简化的XAML如下所示C# 单个文本框样式以红色显示所有负数,c#,wpf,xaml,binding,datatrigger,C#,Wpf,Xaml,Binding,Datatrigger,乍一看,该任务类似于 在我的例子中,我必须在ItemsControl中显示点的集合。每个点都有几个NumericValue类型的属性,这些属性最终是围绕Nullable的包装器 我将点的所有这些属性显示为文本框。NumericValue类的属性为负,如果IsNegative=True,我希望相应文本框的前景为红色 但是,我不希望在每个文本框的样式中定义此规则,而是使用绑定到IsNegative的DataTrigger创建一个样式 简化的XAML如下所示 <ItemsControl Ite
<ItemsControl ItemsSource="{Binding Path=Points}">
...
<TextBox Text="{Binding Path=Data.Proposal.Value}" ... />
<TextBox Text="{Binding Path=Data.Accepted.Value}" ... />
...
</ItemsControl>
请帮助我了解该单一样式的DataTrigger的绑定定义。使用此处给出的转换器
<ItemsControl ItemsSource="{Binding Path=Points}">
...
<TextBox Text="{Binding Path=Data.Proposal.Value}" Foreground="{Binding Data.Proposal.IsNegative, Converter={StaticResource valueToBackground}}" />
...
</ItemsControl>
你可以跟着。我想这会对你有帮助。谢谢你的建议。我更愿意将所有着色内容保存在XAML中,因此我将使用此方法作为最后手段。>请帮助我为该单一样式的DataTrigger定义绑定。Binding={Binding IsNegative}似乎不起作用。我用原始的文本框绑定尝试了这一点,然后还尝试了在{binding IsNegative}方面对我来说更符合逻辑的方法。在任何情况下,甚至都没有调用IsNegative属性。样式的无条件设置器工作正常。如果DataContext不是点本身(您在这里似乎指出了这一点),则需要修改绑定,如果该数据属性是点,则绑定将是{binding Data.IsNegative},这在这里是等效的{Binding Path=Data.IsNegative}。如果绑定不起任何作用,您应该尝试。
<ItemsControl ItemsSource="{Binding Path=Points}">
...
<TextBox Text="{Binding Path=Data.Proposal.Value}" Foreground="{Binding Data.Proposal.IsNegative, Converter={StaticResource valueToBackground}}" />
...
</ItemsControl>