添加图像在C#wpf项目中以编程方式执行DataGrid – 如何?

添加图像在C#wpf项目中以编程方式执行DataGrid – 如何?,第1张

概述我有个问题. 我想在没有VS Designer的情况下以C#编程编写所有内容. 所以,我正在创建一个图像和DataGrid(我将它添加为MainWindow Grid的子代): Image img = new Image(); Uri uri = new Uri(@"C:\d1.jpg"); img.Source = new System.Windows.Media.Imaging.Bit 我有个问题.

我想在没有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 – 如何?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1245103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存