最近在使用WPF的時候,遇到某個列的值需要根據內容不同進行轉換顯示的需求。嘗試了一下,大概有三種方式可以實現: 1、傳統的Binding方法,後臺構造好數據,綁定就行。 2、轉換器方法(Converter),綁定後,觸發轉換器,轉換器負責把值轉換成需要的內容。 3、DataTrigger方法,直接在 ...
最近在使用WPF的時候,遇到某個列的值需要根據內容不同進行轉換顯示的需求。嘗試了一下,大概有三種方式可以實現:
1、傳統的Binding方法,後臺構造好數據,綁定就行。
2、轉換器方法(Converter),綁定後,觸發轉換器,轉換器負責把值轉換成需要的內容。
3、DataTrigger方法,直接在xaml裡面對數據進行處理,展示所需要的內容。
這裡主要學習了怎麼使用第3種方法。寫下來,防止突然想找的時候還得去翻源碼。
<DataGridTemplateColumn Header="數據包是否下載" Width="140"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock> <TextBlock.Style> <Style TargetType="TextBlock" BasedOn="{StaticResource TextBlockBaseStyle}"> <Style.Triggers> <DataTrigger Binding="{Binding Path= DevIsDownload}" Value="False"> <Setter Property="Text" Value="否"></Setter> <Setter Property="Foreground" Value="Red"></Setter> </DataTrigger> <DataTrigger Binding="{Binding Path= DevIsDownload}" Value="True"> <Setter Property="Text" Value="是"></Setter> <Setter Property="Foreground" Value="Green"></Setter> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
根據綁定的DevIsDownload列的內容(bool類型),來觸發顯示效果,如果為false,則前臺顯示為 紅色的“否”字。如果為true,則前臺顯示為 綠色的“是”字。