绑定到当前项(WPF)

时间:2009-07-16 15:34:25

标签: wpf listview data-binding

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

例如,GridViewColumn定义如下:

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

据我所知(并且MSN似乎支持我),指定Path=/应该对数据集合的当前项进行绑定。

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

  

System.Windows.Data错误:39:BindingExpression路径错误:''   '当前收藏品'''OrdersRow'上找不到的物业   (的HashCode = 680171)”。 BindingExpression:路径= /;的DataItem = 'OrdersRow'   (的HashCode = 680171); target元素是'TextBlock'(Name ='');目标   property是'Text'(类型'String')

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

2 个答案:

答案 0 :(得分:7)

您是否尝试省略Path参数?

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

答案 1 :(得分:3)

我认为混淆是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 -->
          />