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");
        }
    }

クラスXのリストを保持するObservableCollectionがあります

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 に答える