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