【发布时间】:2019-04-27 14:37:27
【问题描述】:
我正在尝试使用文本框动态过滤由 xml 输入填充的 datagridview。
如果我启动调试模式, - 表格将被加载 - datagridview 将由输入的 xml 文件 (Form1_FormLoad) 填充 - 我可以向数据网格视图添加一些输入 - 我可以更新选定的行 - 我可以选择datagridview应该保存为xml的路径 - 我可以将已编辑/未编辑的 datagridview 保存到 xml 文件中
保存的方式与读取/打开 xml 的方式相同。
但无论我尝试什么,我都无法过滤这些未绑定 datagridview 的数据。
我找到了 2 种方法。两者都有我必须先绑定数据的缺点(对我来说是菜鸟)。所以,如果我要使用它们,我将不得不重写保存、加载、添加和更新的整个其他代码。因为我无法向数据绑定源添加新行。(错误消息)
所以我会很高兴,如果有人可以提出一些想法/解决方案,我如何在没有的情况下实现过滤
- 公共数据集ds 获取;放;
- 在代码中添加数据网格的输入
代码描述了我如何将 xml 输入添加到数据网格视图的方法。 我从 1 周开始搜索解决方案。有一个,但是如果我在文本框中写一个字母,datagrid view 会变成空的。如果我删除单个字母,datagridview 仍然是空的。
PS。我想说,我没有任何编码的线索。我搜索了几个coding-sn-ps并尝试了它们^^:/ 如果有人问,我可以发布 2 种方法它是如何工作的。我也试过了:)
pathbox.Text = Properties.Settings.Default.pathbox;
string somePath = pathbox.Text;
string filename = "test.xml";
string path = Path.Combine(somePath, filename);
DataSet ds = new DataSet();
ds.ReadXml(path);
foreach (DataRow item in ds.Tables["Player"].Rows)
{
int n = dgw1.Rows.Add();
dgw1.Rows[n].Cells[0].Value = item["Name"].ToString();
dgw1.Rows[n].Cells[1].Value = item["Age"].ToString();
}
【问题讨论】:
-
您听起来不太愿意使用数据绑定,但这是获得可编辑
DataGridView的正确途径。也就是说,您不想只向 DGV 添加新行,而是应该向DataSource添加新对象 - DGV 将相应地更新自身。 ---另一方面:您使用的是DataGridView或WPF,两者不兼容。
标签: c# xml wpf datagridview filtering