首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >动态筛选wpf中的datagridview

动态筛选wpf中的datagridview
EN

Stack Overflow用户
提问于 2019-04-27 22:37:28
回答 1查看 198关注 0票数 0

我正在尝试使用textbox动态过滤一个由xml输入填充的datagridview。

如果我启动调试模式,-表单将被加载-数据网格视图将由xml文件(Form1_FormLoad)的输入填充-我可以向数据网格视图添加一些输入-我可以更新选定的行-我可以选择将数据网格视图保存为xml的路径-我可以将已编辑/未编辑的数据网格视图保存到xml文件

保存的方式与xml读取/打开的方式相同。

但是无论我怎么尝试,我都不能过滤这个未绑定的数据。

我找到了两个方法。两者都有一个缺点(对我来说是新手),那就是我必须先绑定数据。因此,如果我要使用它们,我将不得不重写保存、加载、添加和更新的整个代码。因为我无法将新行添加到数据绑定的源中。(错误消息)

因此,如果有人能提出一些想法/解决方案,我会很高兴,因为我可以在没有公共数据集ds get;set;的情况下实现过滤。

代码描述了如何将xml输入添加到datagrid视图中的方法。我从一周开始就在寻找解决方案。有一个,但是如果我在文本框中写一个字母,数据网格视图就会变成空的。如果我删除了单个字母,datagridview仍然是空的。

PS。我想说的是,我对编码一无所知。我已经搜索了几个代码片段,并尝试了它们^^ :/如果有人问起,我可以发布它是如何工作的两个方法。我也试过了:)

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

发布于 2019-04-28 01:22:39

因为我不能向数据绑定的源添加新行。(错误消息)“有何不可?”

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

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

看看mvvm模式。你可能可以重用你的大部分代码。而只是将其移动到视图模型中。然后你也可以得到很好的代码分离。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55881633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档