0

我有一个 X 类有一些数据:

    private string yyy;

    public string YYY
    {
        get { return yyy; }
        set
        {
            yyy= value;
            NotifyPropertyChanged("YYY");
        }
    }

    private string color;
    [Browsable(false)]
    public string Color
    {
        get { return color; }
        set
        {
            color = value;
            NotifyPropertyChanged("Color");
        }
    }

我有 ObservableCollection 保存类 X 的列表

public ObservableCollection<X> xxx{ get; set; }

通过绑定到 DataGrid 的列表如下:

    <DataGrid x:Name="XXXX" ItemsSource="{Binding}" AutoGenerateColumns="True">
                </DataGrid>

该列表位于 DataGrid 的 DataContext 中,

我希望每行中第一列的文本将是我拥有的类数据的颜色?我会做从字符串到颜色的转换器,但我如何在 xmal 中定义它?

4

1 回答 1

1

你可以使用一个DataGridTemplateColumn

<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
   <DataGrid.Columns>
        <DataGridTemplateColumn Header="FirstName" >
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding FirstName}" Foreground="{Binding Color}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
       <DataGridTextColumn Header="LastName" Binding="{Binding LastName}"></DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

从字符串到颜色的转换是隐式的。我知道这不是严格的 MVVM,但我不会因为拥有 Color 类型的 Color 属性而失眠。

于 2013-02-05T07:31:02.183 回答