0
DataGrid의 속성을 통해 데이터를 바인딩 한 다음 나중에 해당 속성을 업데이트하여 DataGrid의 결과를 변경 (정렬)하려고합니다.WPF DataGrid가 BindingList에 작동하지 않고 결과를 표시하지 않습니다.
내가 처음에 데이터 그리드에 바인딩:
BindingList<Booking> tourBookings;
private async void PageFrame_Loaded_1(object sender, RoutedEventArgs e) {
tourBookings = new BindingList<Booking>((await DataManager.BookingsRef.GetBookingHeaders(PageSize, CurrentPage)).TourBookings);
dgBookings.DataContext = tourBookings;
}
것도이 시점에서 데이터 그리드에 없다, 내가 정렬 방법이 어느 쪽이든 :
private async void DataGrid_Sorting_1(object sender, DataGridSortingEventArgs e) {
tourBookings = new BindingList<Booking>((await DataManager.BookingsRef.GetBookingHeaders(s, asc, PageSize, CurrentPage)).TourBookings);
}
는 .. 여전히 아무런 결과가없는 내 데이터 격자 ...
내 결과는 어디에 있습니까? 여기
너무 내 바인딩은 다음과 같습니다
<DataGrid x:Name="dgBookings" DataContext="{Binding Path=tourBookings}" Style="{StaticResource DataGridStyle}" AutoGenerateColumns="False" CanUserAddRows="False"
ScrollViewer.PanningMode="VerticalOnly" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True"
ScrollViewer.PanningDeceleration="5" ScrollViewer.PanningRatio="1" Grid.RowSpan="2"
Grid.Row="1" RowEditEnding="DataGrid_RowEditEnding_1" CanUserSortColumns="True" Sorting="DataGrid_Sorting_1">
<DataGrid.Columns>
<DataGridTemplateColumn Width="*" SortMemberPath="Time" SortDirection="Ascending">
<DataGridTemplateColumn.Header>
Time
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding StartTime, StringFormat=HH:mm}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*" SortMemberPath="TourID">
<DataGridTemplateColumn.Header>
Tour ID 1
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding TourID}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
..... and load of other properties and then close datagrid.columns etc
하지만 i를 설정하면 내가 tourBookings 속성을 변경하면 temssource가 DataGrid를 업데이트하지 못하게됩니까? – Smithy
ViewModel에서 IPropertyChanged를 구현해야합니다. –
"변경"의 의미에 따라 다릅니다. 예 : 여행 예약 변경 tourbookings = new ... 그러면 PropertyChanged ("tourbookings")를 호출해야합니다. 여행 상품에 항목을 추가/제거하는 경우 컬렉션에 INotifyCollectionChanged를 구현해야합니다. 예 : ObservableCollection –
blindmeis