簡體   English   中英

WPF如何將圖像作為ItemsSource的屬性綁定到DataGrid列?

[英]WPF How to Bind an Image to a DataGrid column as a property of the ItemsSource?

我正在使用MVVM設計模式創建WPF應用。

我有一個包含4列的DataGrid,我希望最后一列是Images的一列。 其他3個文本列綁定到AttributeNode列表中包含的Attributes ,該Attributes用作ItemsSource

XAML

<UserControl.DataContext>
    <viewModel:AttributeGridViewModel />
</UserControl.DataContext>     

...

<DataGrid Name="AttributeGrid" HorizontalAlignment="Stretch" 
                VerticalAlignment="Stretch" ItemsSource="{Binding Attributes}" 
                AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Parameter" Binding="{Binding Parameter}"
                            MinWidth="30" Width="225" FontSize="15"/>
        <DataGridTextColumn Header="Value" Binding="{Binding Value}"
                            MinWidth="30" Width="*" FontSize="15"/>
        <DataGridTextColumn Header="IP Address" Binding="{Binding IpAddress}"
                            MinWidth="10" Width="120" FontSize="15"/>
        <DataGridTemplateColumn Header="Conflict" Width="50">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <!-- area of confusion -->
                    <Image Source="{Binding ???}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
   </DataGrid.Columns>
</DataGrid>

AttributeGridViewModel和AttributeNode

在我的AttributeGridViewModel我使用如下行來設置屬性:

Attributes = ConfigUtility.GetAttributeNodes(value);

以下是AttributeNode類的一部分:

public class AttributeNode
{
    public string Parameter { get; set; }
    public string Value { get; set; }
    public string IpAddress { get; set; }
    public string ImageSource {get; set; }
    public char Type { get; set; }

    ...
}

您可以在此處看到這些屬性,以及如何將Parameter,Value和IpAddress屬性附加到它們自己的列。

但是,如果我嘗試使用Image Source綁定執行此操作,則會收到此錯誤:

在此處輸入圖片說明

我現在還無法確定,如果我可以綁定到表示影像路徑,但我想更重要的是一個字符串是如何訪問和數據綁定的屬性ImageSource一個類型的項目AttributeNode中的的ItemsSource Attributes (名單DataGrid的Attributes )? 我的實現適用於其他3列,並根據ViewModel中的更改正確更新。 我如何像以前一樣訪問酒店?

對於任何想知道我如何解決此問題的人...

看來這是一個Resharper問題,並像這樣創建新的Attribute

new Attribute("","","","../Icons/checkmark.png")

即使Resharper聲稱找不到ImageSource屬性,它仍然可以工作。 在運行時正確設置了DataContext。 圖像現在顯示在列中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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