【问题标题】:Datagrid header sort error bound to dataviewDatagrid标题排序错误绑定到dataview
【发布时间】:2011-12-22 01:48:59
【问题描述】:

我有一个问题,我相信一些简单的事情,只是无法掌握它。我的窗口数据上下文有一个视图模型。在它上面我有一个从数据库查询中填充的私有“DataTable”。没问题。我有一个返回 DataTable.DefaultView 的公共 DataView 属性 {get;set;}。我将表单上的 DataGrid 绑定到视图模型上 DataView 属性的路径并运行表单。没问题,上来,列显示正常,点击行,没问题。

现在,问题来了。单击我认为自动处理数据排序的标题,它会出现一个错误,

'MyTable' type does not have property named '[MyColumn]', so cannot sort data collection.

这里令人困惑的部分。绑定到源自 MyTable.DefaultView 的 VIEW (MyTableView),并且它确实有一个列“MyColumn”,因为它在网格中正确显示。我错过了什么。

澄清一下,这是视图模型中的一些 xaml 和代码

XAML

<DataGrid  AutoGenerateColumns="False" 
           Name="dataMyData" 
           ItemsSource="{Binding Path=MyTableView, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
           SelectedItem="{Binding Path=MyCurrentViewRecord, Mode=TwoWay}" >
  <DataGrid.Columns>
    <DataGridTextColumn Header="#" Binding="{Binding Path=[MyRecord], NotifyOnSourceUpdated=True}" />
    <DataGridTextColumn Header="MyColumn" Binding="{Binding Path=[MyColumn],NotifyOnSourceUpdated=True}"/>
  </DataGrid.Columns>
</DataGrid>

C#

PRIVATE DataTable MyTable;

public DataView MyTableView
{ 
    get { return MyTable.DefaultView; }
}

【问题讨论】:

    标签: wpf sorting binding datagrid


    【解决方案1】:

    其实,找到了……

    我必须明确添加

    SortMemberPath="MyColumn"   (for the column definition of the DataGrid)
    

    绑定中的 [] 括号卡住了,但是如果我没有在绑定中包含括号,因为它是用于显示的列源,它不会显示数据...

    【讨论】:

    • 哦,这让我头疼了!
    猜你喜欢
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2011-04-13
    • 1970-01-01
    • 2013-08-26
    • 2016-12-15
    相关资源
    最近更新 更多