全て、
私は次のクラスを持っています
public class MyCoolClass
{
public string Field1{ get; set; }
public int? Field2{ get; set; }
}
私は別のクラスを持っています
public class MyOtherClass
{
///a bunch of neat properties
public MyCoolClass CoolClass { get; set; }
}
私はバインドする MyOtherClass のコレクションを持っています: C#:
public ObservableCollection<MyOtherClass> MyCoolDataSource { get; }
XAML:
<GroupBox DataContext="{Binding Path=MyCoolDataSource, UpdateSourceTrigger=PropertyChanged}" Header="Test DataGrid">
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<!--A bunch of neat fields-->
<DataGridComboBoxColumn Header="CoolClass" SelectedItem={"Binding Path=CoolClass, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">
<DataGridComboBoxColumn.ItemTemplate>
<!--DataTemplate that shows all properties of MyCoolClass-->
</DataGridComboBoxColumn.ItemTemplate>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
</GroupBox>
さて、私の質問は、特定のフィールドで並べ替えるオプションが必要だとしましょう (.Net 4.0 を使用)。WPF では、これは問題ありません。SortMemberPath を使用するだけです。ただし、DataGrid の CoolClass 列の MyCoolClass のすべてのフィールドで並べ替えたいとしましょう。これは純粋に XAML から行うことができますか、それとも並べ替えのために 2 つのフィールドを結合するプロパティを C# で作成することに固執していますか?
ありがとう。