我有一个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中定义它?
答案 0 :(得分:1)
<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属性而失眠。