C# 如何使entityframework和observablecollection类型独立的Collectionviewsource
我有两段代码,我想让它们独立于类型 背景: 我已经从mssql数据库中的两(8)个表生成了一个edmx文件。 在这些实体上使用linq,我希望得到一个可观察的集合,我可以将其用作CollectionViewSource的源,而CollectionViewSource又绑定到datagrid。应用一些过滤器等 问题是: 我遇到的问题是,我希望绑定/筛选/添加行/删除行的代码独立于生成集合的表。到目前为止,只有在代码中的许多地方使用switchcase,我才能找到一个可行的解决方案。我宁愿不支持重用能力 问题是: 我该做什么,我需要改变什么,我该做什么。简言之,我如何摆脱开关箱 代码snippit:C# 如何使entityframework和observablecollection类型独立的Collectionviewsource,c#,wpf,entity-framework,observablecollection,collectionviewsource,C#,Wpf,Entity Framework,Observablecollection,Collectionviewsource,我有两段代码,我想让它们独立于类型 背景: 我已经从mssql数据库中的两(8)个表生成了一个edmx文件。 在这些实体上使用linq,我希望得到一个可观察的集合,我可以将其用作CollectionViewSource的源,而CollectionViewSource又绑定到datagrid。应用一些过滤器等 问题是: 我遇到的问题是,我希望绑定/筛选/添加行/删除行的代码独立于生成集合的表。到目前为止,只有在代码中的许多地方使用switchcase,我才能找到一个可行的解决方案。我宁愿不支持重用
ent = new Access2SQLEntitiesCon();
CVS = (CollectionViewSource)this.Resources["CVS"];
///don't want this \/
switch (tbl_enum)
{
case 1:
var wnings = from woning in ent.tblWoning
where woning.volg == ProjNum
select woning;
var _oc = new ObservableCollection<tblWoning>(wnings);
_oc.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(OC_CollectionChanged);
CVS.Source = _oc;
break;
}
//don't want that /\
CVS.Filter += CVS_Filter;
MakeFilterListEFM();
ent=new access2sqlentiescon();
CVS=(CollectionViewSource)this.Resources[“CVS”];
///我不想要这个\/
开关(待定枚举)
{
案例1:
var wnings=从ent.TBLwing中的woning开始
其中woning.volg==ProjNum
选择王宁;
var _oc=新的可观测集合(wnings);
_oc.CollectionChanged+=新系统.Collections.Specialized.NotifyCollectionChangedEventHandler(oc\U CollectionChanged);
CVS.Source=_oc;
打破
}
//我不想那样
CVS.Filter+=CVS_Filter;
MakeFilterListEFM();
所以,我可以发布另外两个问题区域,但我认为现在就可以了。我知道我可以将linq部分更改为更具动态性的部分,但这不是问题所在。它是可观察集合及其强制类型…:(
编辑:续:
我尝试使用ObservableCollection,但是我的DataGrid只显示了一堆小的水平线。因为它不再知道它必须显示什么类型的项目。是否有一种方法可以将它放在另一个变量中(通过datatemplate?)到DataGrid,以便自动生成的列再次工作
编辑2:
简而言之。我需要做什么才能用ObservableConnection或ObservableConnection替换ObservableConnection。但要保持在数据网格中自动生成列的能力。据我所知(这个问题有点模糊),我认为你不能“概括”这…好的,让我看看我是否可以澄清一些事情。但是你认为没有办法进一步推广为你不同的TBLwing实现一个接口…我会调查一下。如果我得到一些结果,我会发回