2010-01-05 160 views

回答

2

您尚未指定綁定的來源。因此它使用tab元素的本地DataContext。由於tab元素尚未具有DataContext(這就是您要設置的內容),更不用說其路徑Content.DataContext有意義的那個元素,這是行不通的。

而是使用類似:(根據您的具體要求,您可能還需要使用的,而不是Binding.RelativeSource Binding.Source調查)

Binding binding = new Binding("Content.DataContext") 
{ 
    RelativeSource = RelativeSource.Self 
}; 
BindingOperations.SetBinding(tab, DataContextProperty, binding); 

的的RelativeSource設置指定綁定是與綁定目標相同的元素,而不是本地的DataContext - 因此,控件的DataContext現在被綁定到相同控件的Content的DataContext,如需要。

0

有可能是一個更好的方式來實現你想用XAML綁定做什麼,但如果你使用反正後面的代碼,你可以嘗試,而不是執行以下操作:

FrameworkElement fe = tab.Content as FrameworkElement 
if (fe != null) 
    tab.DataContext = fe.DataContext; 

沒有任何捆綁。

+0

不會編譯。內容被聲明爲類型對象,並且對象沒有DataContext屬性。 – itowlson 2010-01-05 06:31:11

+0

固定........... – 2010-01-05 06:45:29

相關問題