C# 如何使entityframework和observablecollection类型独立的Collectionviewsource

C# 如何使entityframework和observablecollection类型独立的Collectionviewsource,c#,wpf,entity-framework,observablecollection,collectionviewsource,C#,Wpf,Entity Framework,Observablecollection,Collectionviewsource,我有两段代码,我想让它们独立于类型 背景: 我已经从mssql数据库中的两(8)个表生成了一个edmx文件。 在这些实体上使用linq,我希望得到一个可观察的集合,我可以将其用作CollectionViewSource的源,而CollectionViewSource又绑定到datagrid。应用一些过滤器等 问题是: 我遇到的问题是,我希望绑定/筛选/添加行/删除行的代码独立于生成集合的表。到目前为止,只有在代码中的许多地方使用switchcase,我才能找到一个可行的解决方案。我宁愿不支持重用

我有两段代码,我想让它们独立于类型

背景: 我已经从mssql数据库中的两(8)个表生成了一个edmx文件。 在这些实体上使用linq,我希望得到一个可观察的集合,我可以将其用作CollectionViewSource的源,而CollectionViewSource又绑定到datagrid。应用一些过滤器等

问题是: 我遇到的问题是,我希望绑定/筛选/添加行/删除行的代码独立于生成集合的表。到目前为止,只有在代码中的许多地方使用switchcase,我才能找到一个可行的解决方案。我宁愿不支持重用能力

问题是: 我该做什么,我需要改变什么,我该做什么。简言之,我如何摆脱开关箱

代码snippit:

        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实现一个接口…我会调查一下。如果我得到一些结果,我会发回