我有一个网格。根据用户的选择,在运行时自动生成网格列。
如果内容为负数,我需要网格中的单元格为红色。
我创建了一个DataTemplateSelector。如果单元格为负数,则正确调用DataTemplateSelector并返回我的模板。
由于我的列是自动生成的,因此我不能简单地将正确的字段放在模板中的绑定中。
<DataTemplate x:Key="MontantNegatifTemplate">
<TextBlock Foreground="Red" Text="{Binding}" />
</DataTemplate>
如果我像这样做一个模板,那么文本就是网格绑定的对象的名称。
如果我这样做:
<DataTemplate x:Key="MontantNegatifTemplate">
<TextBlock Foreground="Red" />
</DataTemplate>
单元格为空,因为Textblock似乎会覆盖标准的自动生成单元格。
有没有办法让这项工作?我应该使用其他方法吗?
答案 0 :(得分:0)
我终于找到了问题的灵感来源。
我需要使用StyleSelector而不是DataTemplateSelector。
我需要在Grid资源中定义Style而不是DataTemplate。
<style:NegativeStyleSelector x:Key="NegativeStyleSelector">
<style:NegativeStyleSelector.NegativeStyle>
<Style TargetType="GridViewCell">
<Setter Property="Foreground" Value="Red"/>
</Style>
</style:NegativeStyleSelector.NegativeStyle>
</style:NegativeStyleSelector>