[英]Datagrid Sorting (Still) Not Working with Entity Framework 4.0
我在VS2010中編寫的應用程序遇到了麻煩。 我需要在Datagrid上顯示數據綁定數據,並允許用戶對其內容進行排序。
這是我的情況:
我用1個名為“問題”的表構建了一個非常簡單的SQL數據庫。 該表有2列,“ id_Question”和“ QuestionText”。
我從該數據庫創建了一個實體模型。
在“數據源”下,我已將“問題”實體作為Datagrid拖放到了WPF窗口中。 運行時,Datagrid正常填充數據庫中的所有內容。 大。
我已經將DataGrid和DataGrid列的“ CanUserSortColumns”和“ CanUserSort”屬性設置為True。 單擊列標題時,什么也沒有發生,沒有任何排序。
這是XAML代碼段:
<DataGrid AutoGenerateColumns="False"
EnableRowVirtualization="True" Height="200"
HorizontalAlignment="Left" ItemsSource="{Binding}"
Margin="871,126,0,0" Name="questionsDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected"
VerticalAlignment="Top" Width="400"
CanUserSortColumns="True">
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="id_QuestionColumn1" Header="id Question" Width="SizeToHeader">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding Path=id_Question}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="questionTextColumn1"
Binding="{Binding Path=QuestionText}" Header="Question Text" Width="300"
CanUserSort="True"/>
</DataGrid.Columns>
</DataGrid>
我在Stack Overflow和其他網站上閱讀了許多其他相關文章/問題,以下內容為:
每個人都提供了有用的見解,但我無法使它解決我的問題。 我需要在文件后面的代碼中編寫什么才能使其正常工作?
謝謝
您的模板列未排序還是ANY列未排序?
如果它與模板列thenn有關...
組
DataGridTemplateColumn.SortMemberPath="SomeSortableProperty"
DataGridTemplateColumn.SortDirection="Ascending"
我遇到了同樣的問題,花了很多時間進行搜索。 最后,解決方案非常簡單:
<Window.Resources>
<CollectionViewSource x:Key="milestonesViewSource" CollectionViewType="ListCollectionView"/>
</Window.Resources>
<Grid DataContext="{StaticResource milestonesViewSource}">
<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn x:Name="milestoneIdColumn" Binding="{Binding Path=MilestoneId}" Header="Milestone Id"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
問題是CollectionViewSource,它默認情況下創建BindingListCollectionView,該實現實現不支持排序的IBindingList!
但是CollectionViewSource具有屬性CollectionViewType,該屬性允許將視圖類型更改為ListCollectionView,從而可以進行排序。 就這樣。
我今天才在代碼中修復它,所以我還不知道有什么副作用。 目前,一切似乎都正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.