1
我有一個網格綁定到對象列表,SelectedIndex
綁定到一個屬性,我希望這SelectedIndex
正常工作,因爲索引更改排序,但模型中的集合沒有得到排序,所以索引確實不涉及該模型。當網格本身排序時,如何獲取DataGrid對ObservableCollection的支持進行排序?
標記鑑於:模型
public ObservableCollection<Customer> Customers {
get;
private set;
}
private int selectedIndex;
public int SelectedIndex {
get { return selectedIndex; }
set {
if (selectedIndex != value) {
selectedIndex = value;
OnNotifyPropertyChanged("SelectedIndex");
OnNotifyPropertyChanged("SelectedCustomer");
}
}
}
public Customer SelectedCustomer {
get { return CustomersView[selectedIndex]; }
}
我使用這種方法,因爲我有「下一首/上」按鈕和標籤綁定爲「y客戶的X
<DataGrid Name="gridCustomers"
ItemsSource="{Binding Customers}"
SelectedIndex="{Binding SelectedIndex}"
CanUserSortColumns="True"
SelectionUnit="FullRow">
<DataGrid.Columns>
<DataGridTextColumn Header="Customer" Binding="{Binding ID}" />
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
</DataGrid.Columns>
</DataGrid>
代碼」。 SelectedCustomer
是兒童控制的便利屬性,在這種情況下顯示不正確的對象。