我有一个自定义对象,它有一些属性和一个ObservableCollection
.
我遇到的问题是让他们都玩得很好。似乎我想要一个CollectionViewSource
过滤器,但我无法弄清楚它是如何应用的,以便我可以在代码端运行过滤器。
我还没有找到一个很好的这样的绑定示例,它考虑了多种因素(主对象上的属性,带有过滤器的集合)
class Student
{
public string Name { get; set; }
public DateTime DOB { get; set; }
public ObservableCollection<ClassRoom> Classes { get; set; }
public Student()
{
this.Classes = new ObservableCollection<ClassRoom>();
}
}
class ClassRoom
{
public string Name { get; set; }
public int Room { get; set; }
}
使用它,我在 main.cs 中执行此操作
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;
所以我可以在 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>
DataGrid
我真的只想针对Classes属性创建 CVS,这样我就可以将 CSV 分配Binding Room
给Binding Classes.Room
至少我怀疑,基本上问题是我找不到任何关于将 OC 与其他数据混合的示例/教程。