我有一個wpf tabitem,其數據上下文被設置爲我的對象'產品'。此表單上的所有控件都從「產品」對象獲取其數據。我有一個ListView的ItemsSource屬性設置爲我的對象'Product.DetailsList'中的列表。 Listview列綁定到'Product.DetailsList'中的對象屬性數據綁定屬性混淆
直到這裏一切工作正常。現在我需要將我列表視圖中的一些列綁定到我的datacontext對象中的屬性,即'Product'。有人能告訴我,我怎麼能做到這一點?
我有一個wpf tabitem,其數據上下文被設置爲我的對象'產品'。此表單上的所有控件都從「產品」對象獲取其數據。我有一個ListView的ItemsSource屬性設置爲我的對象'Product.DetailsList'中的列表。 Listview列綁定到'Product.DetailsList'中的對象屬性數據綁定屬性混淆
直到這裏一切工作正常。現在我需要將我列表視圖中的一些列綁定到我的datacontext對象中的屬性,即'Product'。有人能告訴我,我怎麼能做到這一點?
我覺得我不完全清楚你的控件之間的層次結構是怎樣的。 DataContext以這種方式工作:從頂層控件繼承到他們的子項。在這種情況下,如果WPF TabItem是ListView的父控件,那麼ListView將具有與TabItem相同的DataContext。
另外,假設我得到它的權利,你可以這樣做:
<TabItem>
<ListView>
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type TabItem}}, Path=DataContext.MyPropInProductObject}">
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</TabItem>
,其中最有趣的部分是相對源設置爲FindAncestor既然你知道DataContext設置到商品對象,可以要求你想要的財產。
HTH
如果我理解正確你的問題,你問如何綁定到集合中的當前項目的某些屬性。它通過在綁定路徑中使用斜線(「/」)來完成。
這裏是例如從MSDN:
<Button Content="{Binding }" />
<Button Content="{Binding Path=/}" />
<Button Content="{Binding Path=/Description}" />
在上面的例子中第一行結合至收集,第二排結合至收集的當前數據項和第三行結合在收集當前數據項的屬性Description
。
示例來自MSDN文章:Binding to Collections - 查找當前項目指針。