使用C#.Net 4.5,Visual Studio 2012 Ulti,WPF.
我有一些旧的win-forms代码,我想在这个新的WPF应用程序中做.
代码如下:
DataGridViewImageCell pNew = new DataGridViewImageCell();
ParetoGrid.Columns.Add(new DataGridViewImageColumn() { CellTemplate = pNew, FillWeight = 1, HeaderText = "pNew", Name = "pNew", Width = 30 });
ParetoGrid.Columns["pNew"].DisplayIndex = 18;
Run Code Online (Sandbox Code Playgroud)
3行代码添加可以处理图像的列.在WPF中,我看到它有点不同.我需要添加"图像列"吗?或者WPF列是否支持图像?还是有另外3个线性解决方案,只是不同的语法?
谢谢你的帮助
Jer*_*myK 15
看到这个答案:
<DataGridTemplateColumn Header="Image" Width="SizeToCells"
IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Image}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
要在以下代码中添加列:
DataGridTextColumn textColumn1 = new DataGridTextColumn();
textColumn1.Header = "Your header";
textColumn1.Binding = new Binding("YourBindingField");
dg.Columns.Add(textColumn1);
Run Code Online (Sandbox Code Playgroud)
使用DataGridTemplateColumn添加自定义列中看到:如何显示图像在WPF DataGrid列编程?
小智 5
这就是我所做的。在数据网格中添加一个带有图像控件的数据模板,如下所示
<DataGridTemplateColumn Header="File Type" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Height="25" Width="50" Source="{Binding FileIcon}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我将图像与名为“FileIcon”的属性绑定在一起,该属性在类 Version 中使用,如下所示
public class Version
{
public string FileIcon { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在您只需绑定提供“FileIcon”的路径并像这样更新 DataGrid 的 ItemSource
ObservableCollection<Version> items = new ObservableCollection<Version>();
items.Add(new Version()
{
FileIcon = "/AssemblyName;component/Images/eye.png",
});
YourDataGrid.ItemsSource = null;
YourDataGrid.ItemsSource = items;
Run Code Online (Sandbox Code Playgroud)