【发布时间】:2016-06-30 19:47:38
【问题描述】:
我正在使用 WPF DataGrid (System.Windows.Controls.DataGrid) 来显示来自数据持有者对象的列。
对于对象中的每个属性,我在 DataGrid 中显示一列。
我正在使用 DataGrid 的 ItemsSource 属性绑定到列表,Items.Refresh() 以在数据更改时更新 DataGrid。
显示的列是动态的(用户从设置菜单中选择要显示的内容),因此我无法在 XAML 代码中添加这些列。
我的数据对象中的一个属性是 Image 对象:
public Image Status { get; set; }
但是当DataGrid只显示对象的类型时:
System.Windows.Controls.Image
有什么方法可以显示图像而不是类型?
编辑
数据网格定义:
<DataGrid Name="ResultsDataGrid" />
数据定义:
private readonly List<ProductItem> _items = new List<ProductItem>();
public Main()
{
InitializeComponent();
ResultsDataGrid.ItemsSource = _items;
}
列是自动生成的。
【问题讨论】:
-
如何动态添加列?我猜当它是图像时,您可能需要添加 DataGridTemplateColumn 而不是 DataGridTextColumn。
-
@alex10 我正在使用
Visibility属性来显示所需的列。 -
可见性?所以您已经创建了列?正如 H.B 所说,您需要
DataGridTemplateColumn。也许您应该粘贴添加列的代码。 -
@alex10 我不是自己创建列。我正在使用
ResultsDataGrid.ItemsSource = _items。 _items 是List。 -
向我们展示更多代码。我很困惑.....
标签: c# wpf wpfdatagrid