在WPF中分配不同的ViewSource

时间:2016-03-30 00:00:28

标签: c# .net wpf

我第一次尝试使用C#/。net / WPF。我创建了一个项目并设置了一个数据源(只是一个带有一些示例数据的表)并创建了两个名为Prods和Prods1的tableadapter - 后者在查询中应用了一个过滤器以返回稍微不同的结果。我已将两张桌子放在我的表格上,并尽职尽责地显示各自的数据。

我以为我会为每个交换数据源。所以默认生成了Window_Loaded:

MSDSTest.prodtestDataSet prodtestDataSet = ((MSDSTest.prodtestDataSet)(this.FindResource("prodtestDataSet")));
// Load data into the table Prods. You can modify this code as needed.
MSDSTest.prodtestDataSetTableAdapters.ProdsTableAdapter prodtestDataSetProdsTableAdapter = new MSDSTest.prodtestDataSetTableAdapters.ProdsTableAdapter();
prodtestDataSetProdsTableAdapter.Fill(prodtestDataSet.Prods);
System.Windows.Data.CollectionViewSource prodsViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("prodsViewSource")));
prodsViewSource.View.MoveCurrentToFirst();
// Load data into the table Prods1. You can modify this code as needed.
MSDSTest.prodtestDataSetTableAdapters.Prods1TableAdapter prodtestDataSetProds1TableAdapter = new MSDSTest.prodtestDataSetTableAdapters.Prods1TableAdapter();
prodtestDataSetProds1TableAdapter.Fill(prodtestDataSet.Prods1);
System.Windows.Data.CollectionViewSource prods1ViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("prods1ViewSource")));
prods1ViewSource.View.MoveCurrentToFirst();

我现在想要创建第一个数据网格(prodsViewSource),而不是显示第二个表的数据,并完全忽略第二个表。所以,我改变如下:

MSDSTest.prodtestDataSet prodtestDataSet = ((MSDSTest.prodtestDataSet)(this.FindResource("prodtestDataSet")));
// Load data into the table Prods. You can modify this code as needed.
MSDSTest.prodtestDataSetTableAdapters.Prods1TableAdapter prodtestDataSetProdsTableAdapter = new MSDSTest.prodtestDataSetTableAdapters.Prods1TableAdapter();
prodtestDataSetProdsTableAdapter.Fill(prodtestDataSet.Prods1);
System.Windows.Data.CollectionViewSource prodsViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("prodsViewSource")));
prodsViewSource.View.MoveCurrentToFirst();

第二个区块已被注释掉。

我必须遗漏一些基本的东西 - 我认为我正在做的是重新定义prodtestDataSetProdsTableAddapter变量以使用prods1表适配器的实例,然后使用它来填充prodsViewSource网格形式,但我最后一片空白。哪里是我的错误?

1 个答案:

答案 0 :(得分:0)

...

好吧,我在打了一个小时后发布了这个帖子一小时后,几分钟后,意识到FAR更容易做的就是更改相关网格的datacontext属性。

我仍然想明白为什么这样做更为复杂的Rube-Goldbergian方式并不起作用,所以如果有人能够解释这一点,它仍然会受到欢迎。