Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# 绑定、datacontext、collectionviewsource_C#_Wpf_Data Binding_Collectionviewsource - Fatal编程技术网

C# 绑定、datacontext、collectionviewsource

C# 绑定、datacontext、collectionviewsource,c#,wpf,data-binding,collectionviewsource,C#,Wpf,Data Binding,Collectionviewsource,我有一个自定义对象,它有一些属性和一个可观测集合 我的问题是让他们都玩得很好。似乎我希望使用CollectionViewSource进行筛选,但我不知道该如何应用,以便可以在代码端运行筛选 我还没有找到这样一个绑定的好例子,它考虑了多个方面(主对象上的proeprites,一个带过滤器的集合) 这样我就可以在xaml中完成这项工作 <TextBlock Grid.Row="0" Grid.Column="0"> <Run Text="Name: "/>

我有一个自定义对象,它有一些属性和一个
可观测集合

我的问题是让他们都玩得很好。似乎我希望使用
CollectionViewSource
进行筛选,但我不知道该如何应用,以便可以在代码端运行筛选

我还没有找到这样一个绑定的好例子,它考虑了多个方面(主对象上的proeprites,一个带过滤器的集合)

这样我就可以在xaml中完成这项工作

<TextBlock Grid.Row="0" Grid.Column="0">
        <Run Text="Name: "/>
        <Run Text="{Binding Name}"/>
    </TextBlock>
    <TextBlock Grid.Row="0" Grid.Column="1">
        <Run Text="DOB: "/>
        <Run Text="{Binding Name}"/>
    </TextBlock>
    <DataGrid Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0" 
        ItemsSource="{Binding Classes}" AutoGenerateColumns="True"></DataGrid>

我真的只想根据Classes属性创建CVS,这样我就可以将CSV分配给
DataGrid
,并使用
Binding Room
处理自定义列绑定,而不是
Binding Classes.Room


至少我怀疑,基本上,问题是我找不到任何关于将OC与其他数据混合的示例/教程。

简而言之,CollectionViewSource允许您在源代码上拥有一个“虚拟视图”,允许您在“视图”中对数据进行分组或排序,而源代码仍然保持不变

wpf中知道如何处理此问题的控件不使用源,而是绑定到视图,因此,当您在CollectionViewSource对象中排序时,该控件将跟随您并以您希望的方式更改其显示的内容

尽管你没有发布太多的代码,也没有指定任何确切的问题,我还是很乐意回答你的问题

以下链接将帮助您了解wpf中的分组、排序和筛选:


看看他们,自己试试。一旦你被困在某个地方,而谷歌似乎无法进一步帮助你,请随意在这里发布一个带有代码示例的问题。

谢谢,这两个链接正好说明了我的问题所在。他们都认为所有的im发送都是集合本身。我将用一些代码更新这个问题
var student = new Student { Name = "Justin", DOB = new DateTime(1983, 6, 15) };
student.Classes.Add(new ClassRoom { Name = "math", Room = 102});
student.Classes.Add(new ClassRoom { Name = "english", Room = 119 });
this.DataContext = student;
<TextBlock Grid.Row="0" Grid.Column="0">
        <Run Text="Name: "/>
        <Run Text="{Binding Name}"/>
    </TextBlock>
    <TextBlock Grid.Row="0" Grid.Column="1">
        <Run Text="DOB: "/>
        <Run Text="{Binding Name}"/>
    </TextBlock>
    <DataGrid Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="0" 
        ItemsSource="{Binding Classes}" AutoGenerateColumns="True"></DataGrid>