BitmapImage im = new BitmapImage();
string path1 = @"C:\abc.png";
im.UriSource=new Uri(path1);
DataGridTemplateColumn one = new DataGridTemplateColumn();
this.dataGrid1.Columns.Add(one);
现在我必须添加的BitmapImage IM在datagridTemplateColumn。
如何添加图片在列?
在代码控制模板的使用是很难的。 在WPF的标准和有效的方法是创建XAML模板布局。 然后,如果你需要的任何数据传递到您的控件使用数据绑定。 你不应该通常需要构建代码模板,除了极少数情况下。
为了让您打算使用上面你写XAML同样的效果:
<DataGrid x:Name="dataGrid1">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="file:///C:\abc.png" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
如果图像路径必须是动态的,每一个网格行,你可以修改它是这样的:
<DataGrid x:Name="dataGrid1" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding ImageFilePath}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
这里有一个例子代码隐藏用于填充一些数据网格:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<MyDataObject> list = new List<MyDataObject>();
list.Add(new MyDataObject() { ImageFilePath = new Uri("file:///c:\\abc.png") });
list.Add(new MyDataObject() { ImageFilePath = new Uri("file:///c:\\def.png") });
dataGrid1.ItemsSource = list;
}
}
public class MyDataObject
{
public Uri ImageFilePath { get; set; }
}