簡體   English   中英

根據值更改 WPF DataGrid 列上的圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM