2014-02-09 43 views
0

使用數據網格在RT中填充數據的IM(使用mvvm的Im)。 我將數據網格綁定到在RT期間使用值更新的觀察者集合。一列上的數據網格顯示圖標

其中一個字段是isKey。如果這個值是真的,我想顯示一些關鍵圖標。 我該怎麼做?

我需要在鍵正確的時候添加圖標

這是我的代碼

模型

public bool IsKey { get; set; } 
     public string Column2 { get; set; } 
     public string Column3 { get; set; } 



    { 
     public ViewModel() 
      { 
      this.Items = new List<MyClass>(); 
      //row 1: 
      this.Items.Add(new MyClass { IsKey= true,Column2 = "aaaa",Column3 = "ddfa",Column4 = "fddsfas",Column5 = "dfadsfas"}); 
      //row 2: 
      this.Items.Add(new MyClass { IsKey = false ,Column2 = "aaaa",Column3 = "ddfa",Column4 = "fddsfas",Column5 = "dfadsfas"}); 
      } 

的XAML

 </DataGridTemplateColumn> 
     <DataGridTextColumn Binding="{Binding isKey}" Header="2" Width="*" /> 
     <DataGridTextColumn Binding="{Binding Column2}" Header="2" Width="*" /> 
     <DataGridTextColumn Binding="{Binding Column3}" Header="3" Width="*" /> 
     <DataGridTextColumn Binding="{Binding Column4}" Header="4" Width="*" /> 

回答

1

你需要DataGridTemplateColumn。將它的CellTemplate設置爲包含ContentControl,其內容在IsKey值爲false的情況下爲空,並且在IsKey爲時值爲true時將其設置爲Icon。

<DataGridTemplateColumn IsReadOnly="True"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
     <ContentControl x:Name="content"/> 
     <DataTemplate.Triggers> 
      <DataTrigger Binding="{Binding IsKey}" Value="True"> 
       <Setter TargetName="content" Property="ContentTemplate"> 
       <Setter.Value> 
        <DataTemplate> 
         <Image Source="IconSourcePath" Height="30"/> 
        </DataTemplate> 
       </Setter.Value> 
       </Setter> 
      </DataTrigger> 
     </DataTemplate.Triggers> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 
+0

HI羅希特,謝謝,但內容是什麼,爲什麼我需要它?這是有數據的表?目前我使用

+0

'content'是在GUI上顯示數據所需的ContentControl名稱。像'DataGridTextColumn'內部使用'TextBlock'來在GUI上託管你的數據。同樣,我使用ContentControl在GUI上顯示圖標。你需要展示什麼圖標? –

+0

HI Rohit,只是從網絡上的簡單鑰匙圖標... –