【发布时间】:2012-11-11 22:49:36
【问题描述】:
我有问题。
我想在没有 VS Designer 的情况下用 C# 以编程方式编写所有东西。
所以,我正在创建一个图像和 DataGrid(并将其添加为 MainWindow Grid 的子项):
Image img = new Image();
Uri uri = new Uri(@"C:\d1.jpg");
img.Source = new System.Windows.Media.Imaging.BitmapImage(uri);
DataGrid dg = new DataGrid();
grid1.Children.Add(dg);
然后我想添加 4 列,例如,3 列文本和 1 列图像。所以首先我需要用示例数据创建一个 DataTable 和 DataRow:
DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
dt.Columns.Add("Column3");
dt.Columns.Add("Column4", typeof(Image)); // type of image!
DataRow dr = dt.NewRow();
dr[0] = "aaa";
dr[1] = "bbb";
dr[2] = "ccc";
dr[3] = img; // add a sample image
dt.Rows.Add(dr);
现在我有一个包含 4 列和 1 行数据的 DataTable。
然后我需要做的就是像这样设置 DataGrid 的 ItemsSource:
dg.ItemsSource = dt.DefaultView;
我做错了什么?为什么在最后的网格上有 System.Windows.Controls.Image 连续而不是真实图像?我需要绑定它吗?
所有我需要以编程方式完成的事情,无需设计师。
如何显示真实图像而不是那个字符串?
【问题讨论】:
-
天啊!没有设计师?写 XAML 怎么样?这不是winforms。不要在代码中操作 UI 元素。
标签: c# wpf image binding datagrid