1

我有一个网格。网格的列在运行时根据用户的选择自动生成。

如果内容是负数,我需要网格中的单元格为红色。

我创建了一个 DataTemplateSelector。如果单元格为负数,则正确调用 DataTemplateSelector 并返回我的模板。

由于我的列是自动生成的,因此我不能简单地将正确的字段放入模板的绑定中。

            <DataTemplate x:Key="MontantNegatifTemplate">                    
                <TextBlock Foreground="Red" Text="{Binding}" />
            </DataTemplate>

如果我做这样的模板,则文本是网格绑定的对象的名称。

如果我这样做:

            <DataTemplate x:Key="MontantNegatifTemplate">                    
                <TextBlock Foreground="Red" />
            </DataTemplate>

该单元格是空的,因为 Textblock 似乎覆盖了标准自动生成的单元格。

有没有办法使这项工作?我应该使用另一种方法吗?

4

1 回答 1

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>
于 2010-09-08T18:20:15.390 回答