Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将collectionviewsource强制转换为WPF中的列表_C#_Wpf_Data Binding_Collectionviewsource - Fatal编程技术网

C# 将collectionviewsource强制转换为WPF中的列表

C# 将collectionviewsource强制转换为WPF中的列表,c#,wpf,data-binding,collectionviewsource,C#,Wpf,Data Binding,Collectionviewsource,我有一个静态方法,需要传递过滤后的collectionviewsource的值,但目前我无法这样做。我尝试了各种方法将其转换为列表,但无法适应静态方法 public void Updateswlist() { CRmappings2 = new ObservableCollection<SPFetchCREntity>(crentities.ToList()); AllCRSP = CollectionViewSource.G

我有一个静态方法,需要传递过滤后的collectionviewsource的值,但目前我无法这样做。我尝试了各种方法将其转换为列表,但无法适应静态方法

        public void Updateswlist()
    {

        CRmappings2 = new ObservableCollection<SPFetchCREntity>(crentities.ToList());
        AllCRSP = CollectionViewSource.GetDefaultView(CRmappings2);
        SearchMU = SelectedSW.SW_Version;
        AllCRSP.Filter = obj =>
        {
            SPFetchCREntity entity = obj as SPFetchCREntity;
            return obj != null && entity.SW_Version == SearchMU.ToString();
        };
        AllCRSP.Refresh();
        Isdrawopen = false;
        SelectedTabIndex = 0;
        Isselected = false;
        Isselected = true;
    }
ViewModel-静态方法

static public List<string> getallcrsp()
    {
        List<string> data =  new List<string>();
        data.Add("TEST1");
        data.Add("TEST2");
        return data;
    }
静态公共列表getallcrsp()
{
列表数据=新列表();
数据。添加(“测试1”);
数据。添加(“测试2”);
返回数据;
}
ViewModel-Collectionviewsource方法-AllCRSP是一个Collectionviewsource,我希望将其转换为list并将其值传递给静态方法

        public void Updateswlist()
    {

        CRmappings2 = new ObservableCollection<SPFetchCREntity>(crentities.ToList());
        AllCRSP = CollectionViewSource.GetDefaultView(CRmappings2);
        SearchMU = SelectedSW.SW_Version;
        AllCRSP.Filter = obj =>
        {
            SPFetchCREntity entity = obj as SPFetchCREntity;
            return obj != null && entity.SW_Version == SearchMU.ToString();
        };
        AllCRSP.Refresh();
        Isdrawopen = false;
        SelectedTabIndex = 0;
        Isselected = false;
        Isselected = true;
    }
public void Updateswlist()
{
CRmappings2=新的ObservableCollection(crenties.ToList());
AllCRSP=CollectionViewSource.GetDefaultView(CRmappings2);
SearchMU=选择的SW.SW\u版本;
AllCRSP.Filter=obj=>
{
SPFetchCreentity实体=对象作为SPFetchCreentity;
返回obj!=null&&entity.SW_Version==SearchMU.ToString();
};
AllCRSP.Refresh();
Isdrawopen=false;
SelectedTabIndex=0;
Isselected=false;
Isselected=true;
}

如果您拥有
SPFetchCREntity
对象的
CollectionViewSource
,并且想要一个
列表
,您应该执行以下操作:

using System.Linq;

// 1. Get source collection of the CollectionViewSource
IEnumerable source = AllCRSP.SourceCollection;

// 2. Make it generic using Linq OfType<> method 
IEnumerable<SPFetchCREntity> source_typed = source.OfType<SPFetchCREntity>();

// 3. You can filter your list using Linq Where method
IEnumerable<SPFetchCREntity> source_typed_filtered = source_typed.Where(obj => obj != null && entity.SW_Version == SearchMU.ToString());

// 4. Get string equivalent of your objects using Linq Select method
IEnumerable<string> source_string = source_typed_filtered.Select(obj => <...something like obj.ToString()...>);

// 5. Convert it ToList using Linq
List<string> list = source_string.ToList();
使用System.Linq;
// 1. 获取CollectionViewSource的源集合
IEnumerable source=AllCRSP.SourceCollection;
// 2. 使用Linq OfType方法使其成为泛型
IEnumerable source_typed=source.OfType();
// 3. 您可以使用Linq Where方法筛选列表
IEnumerable source_typed_filtered=source_typed.Where(obj=>obj!=null&&entity.SW_Version==SearchMU.ToString());
// 4. 使用Linq Select方法获取对象的等效字符串
IEnumerable source_string=source_typed_filtered.Select(obj=>);
// 5. 使用Linq将其转换为列表
List=source_string.ToList();
或者用一句简短的话

var list = AllCRSP.SourceCollection.OfType<SPFetchCREntity>().Where(...).Select(...).ToList();
var list=AllCRSP.SourceCollection.OfType().Where(…).Select(…).ToList();

如果您拥有
SPFetchCREntity
对象的
CollectionViewSource
,并且想要一个
列表
,您应该执行以下操作:

using System.Linq;

// 1. Get source collection of the CollectionViewSource
IEnumerable source = AllCRSP.SourceCollection;

// 2. Make it generic using Linq OfType<> method 
IEnumerable<SPFetchCREntity> source_typed = source.OfType<SPFetchCREntity>();

// 3. You can filter your list using Linq Where method
IEnumerable<SPFetchCREntity> source_typed_filtered = source_typed.Where(obj => obj != null && entity.SW_Version == SearchMU.ToString());

// 4. Get string equivalent of your objects using Linq Select method
IEnumerable<string> source_string = source_typed_filtered.Select(obj => <...something like obj.ToString()...>);

// 5. Convert it ToList using Linq
List<string> list = source_string.ToList();
使用System.Linq;
// 1. 获取CollectionViewSource的源集合
IEnumerable source=AllCRSP.SourceCollection;
// 2. 使用Linq OfType方法使其成为泛型
IEnumerable source_typed=source.OfType();
// 3. 您可以使用Linq Where方法筛选列表
IEnumerable source_typed_filtered=source_typed.Where(obj=>obj!=null&&entity.SW_Version==SearchMU.ToString());
// 4. 使用Linq Select方法获取对象的等效字符串
IEnumerable source_string=source_typed_filtered.Select(obj=>);
// 5. 使用Linq将其转换为列表
List=source_string.ToList();
或者用一句简短的话

var list = AllCRSP.SourceCollection.OfType<SPFetchCREntity>().Where(...).Select(...).ToList();
var list=AllCRSP.SourceCollection.OfType().Where(…).Select(…).ToList();

@mjwills不,它不起作用。@mjwills不,它不起作用。