我想在没有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而不是真实图像?我需要绑定它还是什么?
所有我需要以编程方式完成的事情,没有设计师.
如何显示真实图像而不是该字符串?
解决方法 仍然不知道如何在100%的程序上做到这一点,但我弄清楚了.最重要的是DataGrID(或GrIDVIEw)不支持Image.为什么?不要问我.所以我将图像更改为BitmAPImage,它就像一个魅力.
所以有我的修改:
Uri uri = new Uri(@"C:\d1.jpg"); BitmAPImage bmp = new System.windows.Media.Imaging.BitmAPImage(uri); ... DataGrID dg = new DataGrID(); dg.autoGenerateColumns = false; DataGrIDTemplateColumn col1 = (DataGrIDTemplateColumn)this.FindResource("dgt"); dg.Columns.Add(col1); DataGrIDTextColumn col2 = new DataGrIDTextColumn(); col2.header = "Column2"; col2.Binding = new Binding("Column2"); dg.Columns.Add(col2); ... Datatable dt = new Datatable(); dt.Columns.Add("Column1",typeof(BitmAPImage)); dt.Columns.Add("Column2"); DaTarow dr = dt.NewRow(); dr[0] = bmp; dr[1] = "test"; dt.Rows.Add(dr); ... dg.ItemsSource = dt.defaultview; grID1.Children.Add(dg);
但我需要将资源添加到XAML(不知道如何编程).所以有一个代码:
<Window.Resources> <DataGrIDTemplateColumn x:Key="dgt" header="Column1" WIDth="SizetoCells"> <DataGrIDTemplateColumn.CellTemplate> <DataTemplate> <Image Source="{Binding Column1}" /> </DataTemplate> </DataGrIDTemplateColumn.CellTemplate> </DataGrIDTemplateColumn></Window.Resources>
一切都很好!
GrIDVIEw或ListVIEw也是如此.希望它可以帮到某人.
总结以上是内存溢出为你收集整理的添加图像在C#wpf项目中以编程方式执行DataGrid – 如何?全部内容,希望文章能够帮你解决添加图像在C#wpf项目中以编程方式执行DataGrid – 如何?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)