[英]DataGrid populated using ItemsSource not sortable despite CanUserSortColumns=“true”
我有一個從數據庫填充的數據網格,因此可以查看數據庫並進行更改。
但是,您無法通過單擊標題對列進行排序。 當您單擊它們時,沒有任何反應。 我已經在SO上看到了很多類似的問題,並且改變了XMAL並嘗試了不同的方法,但是似乎沒有任何答案可以解決這個問題。
這是我的C#。
public Window1()
{
InitializeComponent();
LoadDataGrid();
}
private void LoadDataGrid()
{
TasksDataContext tasksDB = new TasksDataContext();
var tasks = (from p in tasksDB.LubeTasks select p);
MyDataGrid.ItemsSource = tasks;
}
這是我首先在教程中嘗試過的XMAL:
<grid:DataGrid Name="MyDataGrid" CanUserSortColumns="True">
<grid:DataGrid.Columns>
<grid:DataGridTextColumn Binding="{Binding Path=Number}"
Header="Number" CanUserSort="True" />
<grid:DataGridTextColumn Binding="{Binding Path=Description}"
Header="Description" CanUserSort="True"/>
</grid:DataGrid.Columns>
</grid:DataGrid>
我還嘗試添加諸如SortMemberPath="Number.code"
或SortMemberPath="Number"
並使用不同的標記進行搜索,但是仍然無法排序。
我還在這里的另一篇教程中嘗試過這樣的結構,但是它也不起作用。
<grid:DataGrid Name="MyDataGrid" CanUserSortColumns="True" ItemsSource="{Binding}">
<grid:DataGrid.Columns>
<grid:DataGridTemplateColumn SortMemberPath="Number" CanUserSort="true">
<grid:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<Binding Path="Number"/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</grid:DataGridTemplateColumn.CellTemplate>
</grid:DataGridTemplateColumn>
<grid:DataGridTemplateColumn SortMemberPath="Description" CanUserSort="true">
<grid:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<Binding Path="Description" />
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</grid:DataGridTemplateColumn.CellTemplate>
</grid:DataGridTemplateColumn>
</grid:DataGrid.Columns>
</grid:DataGrid>
我如何填充數據網格存在問題嗎? 我試過使用MyDataGrid.DataContext = tasks;
但是,如果這樣做,我似乎根本無法填寫數據網格。
非常感謝您的任何建議。
您需要將Database的LINQ結果放入支持排序的結構中。
嘗試這個:
TasksDataContext tasksDB = new TasksDataContext();
var tasks = (from p in tasksDB.LubeTasks select p).ToList();
MyDataGrid.ItemsSource = tasks;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.