gpt4 book ai didi

c# - 在 WPF 中读取数据网格的值

转载 作者:行者123 更新时间:2023-11-30 21:41:34 24 4
gpt4 key购买 nike

我需要读取 WPF 应用程序中数据网格中一列的所有值。

for (int i = 0; i < dgridList.Items.Count; i++)
{
DataGridRow row = (DataGridRow)dgridList.ItemContainerGenerator.ContainerFromIndex(i);

TextBlock t_name = dgridList.Columns[0].GetCellContent(row) as TextBlock;
TextBlock t_type = dgridList.Columns[1].GetCellContent(row) as TextBlock;
Tuple<string, string> mod = new Tuple<string, string>(t_name.Text, t_type.Text);
Alist.Add(mod);
}

这是datagrid的XMAL声明

<DataGrid x:Name ="dgridList" Margin="0,0,0,0" Grid.Row="1" IsReadOnly="True" AutoGenerateColumns="False">

如果数据网格仅包含 3,4 个项目,则此迭代正常工作(如果我们在数据网格迭代中添加更多项目则不起作用。)。如果我们增加项目,婴儿车栏也可见。 (因为数据网格大小设置为小)

An unhandled exception of type 'System.ArgumentNullException' occurred in PresentationFramework.dll

Additional information: Value cannot be null.

如果我尝试读取数据网格中的值(超过 4 个项目),我会收到此错误。

我该如何解决。

最佳答案

如果你设置了ItemsSource DataGrid 的属性(property)到IEnumerable<YourClass> , 你可以遍历所有 YourClass对象并获取它们的属性值:

foreach (var item in dgridList.Items.OfType<YourClass>())
{
var name = item.t_name;
var type = item.t_type;
Tuple<string, string> mod = new Tuple<string, string>(name, type);
Alist.Add(mod);
}

关于c# - 在 WPF 中读取数据网格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43230545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com