我嘗試這樣做:如何將控件的DataContext綁定到WPF中其內容的DataContext?
Binding binding = new Binding("Content.DataContext");
BindingOperations.SetBinding(tab, DataContextProperty, binding);
這是行不通的。我不知道爲什麼。
我嘗試這樣做:如何將控件的DataContext綁定到WPF中其內容的DataContext?
Binding binding = new Binding("Content.DataContext");
BindingOperations.SetBinding(tab, DataContextProperty, binding);
這是行不通的。我不知道爲什麼。
您尚未指定綁定的來源。因此它使用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,如需要。
有可能是一個更好的方式來實現你想用XAML綁定做什麼,但如果你使用反正後面的代碼,你可以嘗試,而不是執行以下操作:
FrameworkElement fe = tab.Content as FrameworkElement
if (fe != null)
tab.DataContext = fe.DataContext;
沒有任何捆綁。
不會編譯。內容被聲明爲類型對象,並且對象沒有DataContext屬性。 – itowlson 2010-01-05 06:31:11
固定........... – 2010-01-05 06:45:29
你有沒有嘗試過這樣做的說明? (通過xaml)? – Pierreten 2010-01-05 05:03:56