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