1
如何從嵌套數據模板(項目數據模板中的控件的數據模板)中綁定到ItemsControl中的Item的DataContext?我不能使用TemplatedParent
,因爲它是雙模板的。 而我不知道如何使用FindAncestor,AncestorType
,因爲我不知道每個項目的類型是什麼。綁定到ItemsControl中的Item的DataContext
有什麼想法?
如何從嵌套數據模板(項目數據模板中的控件的數據模板)中綁定到ItemsControl中的Item的DataContext?我不能使用TemplatedParent
,因爲它是雙模板的。 而我不知道如何使用FindAncestor,AncestorType
,因爲我不知道每個項目的類型是什麼。綁定到ItemsControl中的Item的DataContext
有什麼想法?
如果我正確地讀這篇文章,您有:
- ItemsControl
|- ItemTemplate Item.DataContext<--|
|- Button |
|- ContentTemplate <-- Bind something in this to|
如果是這樣的話,你要尋找的是ContentPresenter
。這是ItemsControl
生成的容器類型。問題是你將有多個ContentPresenter
祖先。您可以使用RelativeSource
的AncestorLevel
屬性來處理此問題。
所以,在我的例子中,Button
的DataTemplate
可以通過訪問該行的DataContext
:
<DataTemplate>
<TextBlock Text="{Binding DataContext.Name, RelativeSource={RelativeSource AncestorType={x:Type ContentPresenter}, AncestorLevel=2}}" />
</DataTemplate>
ContentPresenter!這就是我一直在尋找的。謝謝! –
終於在搜索3小時後找到它!這應該有更多的選票可見頂部。謝謝。 – Val