[英]Change the assigned function and text to a button in a WPF Datagrid depending on column value
[英]Change image on WPF DataGrid column depending on value
我目前在我的應用程序中有一個DataGrid
,它使用 dapper 從 SQLServer 中的表中填充其項目源。 在表中有一個bool
/ bit
值,表示該行是否具有超鏈接字符串。 如何更改每行的圖像以顯示超鏈接符號的 a.png 圖像,如果值為true
,或者如果符號為false
,則顯示叉號?
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding documentID}" ClipboardContentBinding="{x:Null}" Header="ID" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding documentTitle}" ClipboardContentBinding="{x:Null}" Header="TITLE" IsReadOnly="True"/>
<DataGridTemplateColumn IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Image}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
您可以在列中為Image
創建一個樣式,將其Source
屬性設置為相應的 PNG 文件,具體取決於表中的bool
屬性,此處IsHyperlink
。
<DataGrid ItemsSource="{Binding DataBaseTableSource}" AutoGenerateColumns="False">
<DataGrid.Resources>
<Style x:Key="HyperlinkImageStyle" TargetType="{x:Type Image}">
<Setter Property="Source" Value="cross_symbol.png"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsHyperlink}" Value="True">
<Setter Property="Source" Value="hyperlink_symbol.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
<DataTemplate x:Key="HyperLinkImageColumnTemplate">
<Image Style="{StaticResource HyperlinkImageStyle}"/>
</DataTemplate>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding documentID}" ClipboardContentBinding="{x:Null}" Header="ID" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding documentTitle}" ClipboardContentBinding="{x:Null}" Header="TITLE" IsReadOnly="True"/>
<DataGridTemplateColumn IsReadOnly="True" CellTemplate="{StaticResource HyperLinkImageColumnTemplate}"/>
</DataGrid.Columns>
</DataGrid>
由於您沒有為 PNG 圖像提供任何文件路徑,因此您必須在樣式中調整它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.