2013-02-05 47 views
0

我有一個類X也有一些數據:設置爲一列通過結合不同的顏色 - DataGrid中

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中定義這個?

回答

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屬性而失去睡眠。

+0

當我寫{Binding FirstName}時,它會從訂單中的列表中取出,因爲它不會顯示數據當我這樣做時。 –

+0

我編輯了評論 - 出現錯誤sry –

+0

我認爲您想寫{綁定YYY}(要顯示的屬性的名稱)並且具有ItemsSource =「{Binding YourProperty}」,我的答案中的代碼僅僅是一個示例。 –

相關問題