我试图将ListView控件绑定到DataTable,但是WPF绑定系统似乎在抱怨我指定的绑定路径。

例如,GridViewColumn定义如下:

<GridViewColumn Header="ColumnTitle"
 DisplayMemberBinding="{Binding Path=/,
                        Converter={StaticResource myConverter}}"/>


据我了解(MSN似乎支持我),指定Path=/应该在数据收集的当前项目上进行绑定。

我收到的错误(在跟踪窗口中)是:


System.Windows.Data错误:39:BindingExpression路径错误:''
在“集合的当前项目”“ OrdersRow”上找不到属性
(HashCode = 680171)”。 BindingExpression:Path = /; DataItem ='OrdersRow'
(HashCode = 680171);目标元素是'TextBlock'(Name ='');目标
属性为“文本”(类型为“字符串”)


这给我的印象是/甚至不是有效的路径,并且WPF期望在斜线之后有一些内容。如果是这样,我将如何绑定到当前项目?为什么我首先遇到此错误?

最佳答案

我认为混乱之处在于GridViewColumn的DataContext并不是顶级集合,但已经是绑定到该列的项目,因此您无需指定路径。

您可以使用这样的路径的时间是,如果控件的DataContext是一个List并且您想绑定到所选项目。一个可能的例子是。

<Combobox DataContext={Binding ColourList}
          DataSource={Binding} <!--Bind to the datacontext -->
          ForeColor={Binding/} <!--Bind to the currently selected item
                                   in the datacontext -->
          />

07-28 12:28
查看更多