いくつかのプロパティと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>
Classes プロパティに対して CVS を作成したいだけなので、CSV をに割り当ててカスタムDataGrid
列バインディングを処理できます。Binding Room
Binding Classes.Room
少なくとも私は疑っていますが、基本的に問題は、OC を他のデータと混合することについて話している例/チュートリアルを見つけることができなかったことです。