Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ItemsSource填充的DataGrid不可排序,尽管CanUserSortColumns=";“真的”;_C#_Wpf_Database_Datagrid - Fatal编程技术网

C# 使用ItemsSource填充的DataGrid不可排序,尽管CanUserSortColumns=";“真的”;

C# 使用ItemsSource填充的DataGrid不可排序,尽管CanUserSortColumns=";“真的”;,c#,wpf,database,datagrid,C#,Wpf,Database,Datagrid,我有一个从数据库填充的datagrid,这样我可以查看和更改数据库 但是,不能通过单击标题对列进行排序。当你点击它们时,什么也没发生。我见过很多关于S.O.的问题,像这样,我改变了我的XMAL很多,尝试了不同的事情,但似乎没有答案能解决我的问题 这是我的C 以下是我在教程中首次尝试的XMAL: <grid:DataGrid Name="MyDataGrid" CanUserSortColumns="True"> <grid:DataGrid.Column

我有一个从数据库填充的datagrid,这样我可以查看和更改数据库

但是,不能通过单击标题对列进行排序。当你点击它们时,什么也没发生。我见过很多关于S.O.的问题,像这样,我改变了我的XMAL很多,尝试了不同的事情,但似乎没有答案能解决我的问题

这是我的C

以下是我在教程中首次尝试的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>
我如何填充datagrid的问题是什么?我尝试过使用
MyDataGrid.DataContext=tasks

非常感谢您的建议。

您需要将来自数据库的LINQ结果放入支持排序的结构中

试试这个:

    TasksDataContext tasksDB = new TasksDataContext();
    var tasks = (from p in tasksDB.LubeTasks select p).ToList();
    MyDataGrid.ItemsSource = tasks;

您需要将来自数据库的LINQ结果放入支持排序的结构中

试试这个:

    TasksDataContext tasksDB = new TasksDataContext();
    var tasks = (from p in tasksDB.LubeTasks select p).ToList();
    MyDataGrid.ItemsSource = tasks;

是否设置了SortMemberPath?是的,在第一个示例中,我尝试了使用CollectionViewSource。是否设置了SortMemberPath?是的,在第一个示例中,我尝试了使用CollectionViewSource。啊哈!非常感谢。虽然你可能想把它编辑成
ToList()
Ah该死,但这会把我的编辑搞砸。现在我得到一个错误,在addnew或edititem事务中不允许排序。这有点挑剔。如果从.NET 3.5更新到.NET 4.5,实际上不需要添加
ToList()
。但在4.5中,它抛出了一个
,在addnew或edititem事务中,当您编辑某些内容时,不允许“排序”。如果您使用3.5并添加了
ToList()
,这似乎是可行的。啊哈!非常感谢。虽然你可能想把它编辑成
ToList()
Ah该死,但这会把我的编辑搞砸。现在我得到一个错误,在addnew或edititem事务中不允许排序。这有点挑剔。如果从.NET 3.5更新到.NET 4.5,实际上不需要添加
ToList()
。但在4.5中,它抛出了一个
,在addnew或edititem事务中,当您编辑某些内容时,不允许“排序”。如果您使用3.5并添加了
ToList()
,这似乎是可行的。
    TasksDataContext tasksDB = new TasksDataContext();
    var tasks = (from p in tasksDB.LubeTasks select p).ToList();
    MyDataGrid.ItemsSource = tasks;