【问题标题】:Dynamic filtering a datagridview in wpf在wpf中动态过滤datagridview
【发布时间】: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 将相应地更新自身。 ---另一方面:您使用的是DataGridViewWPF,两者不兼容。

标签: c# xml wpf datagridview filtering


【解决方案1】:

“因为我无法向数据绑定源添加新行。(错误消息)” 为什么不呢?

如果您将它数据绑定到 ObservableCollection 中的项目,添加 snd 从集合中删除项目将自动更新它的视图端(数据网格)。

我强烈建议使用绑定,这是首先使用 WPF 的一个非常有力的论据。

查看 mvvm 模式。您可能可以重用大部分代码。但只是将其移至 Viewmodel。然后你也得到了很好的代码分离。

【讨论】:

  • 问题是我没有任何编程或编码的线索。^^ 我知道我将条目按字符串添加到 dgv。我可以删除它们..更新它们..我可以将编辑后的 ​​dgv 保存在一个 xml 文件中.. 之后,如果我再次打开程序,将打开编辑后的新旧 xml,其内容将显示在datagridview... 然后我可以添加新数据。等等等等……我需要的所有东西(我想要实现的最后一个)是一个简单的代码,用于通过动态使用文本框中的文本来搜索/过滤dgv……只有一个代码。我愿意付钱。
  • 好的...我想为我的无知道歉:/和我的隧道视图 XD...现在,我可以使用数据表 xml 作为我的新数据表的数据源进行过滤..我将它绑定为来源到我的 dgv。然后我可以过滤它..谢谢。所以我现在必须改变的一切。是添加、删除、更新和保存的代码。感谢您向我展示解决方案,方法。一个希望XD
  • 但是现在。我有个问题。我怎样才能添加删除,更新。并保存我使用数据表过滤的数据网格。绑定源和co?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
相关资源
最近更新 更多