所以在這裏我來創建一個用戶控件。它包含一個從組合框下降的樹形視圖。綁定依賴屬性
實際上,有一個控件(DropTree)從其上下文菜單下拉按鈕。所以我有一個控制DropTree。
public partial class DropTree : UserControl
{
public TreeView TreeView
{ get{return treeView;} }
public DropTree()
{ InitializeComponent(); }
}
爲了簡化它,我把TreeView控件公開了,然後我有我的主要控件叫做ComboTreeView。
現在我需要它來代表的一些樹視圖屬性,所以我定義了幾個依賴屬性:
public static DependencyProperty SelectedItemProperty = DependencyProperty.Register("SelectedItem", typeof(object), typeof(ComboTreeView), new FrameworkPropertyMetadata { Inherits = true, IsNotDataBindable = false, DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged });
public object SelectedItem
{
get { return GetValue(SelectedItemProperty); }
set { SetValue(SelectedItemProperty, value); }
}
,並在構造函數是:
public ComboTreeView()
{
InitializeComponent();
TreeViewControl.SetBinding(TreeView.SelectedItemProperty, new Binding("SelectedItem") { Source = this, Mode = BindingMode.TwoWay });
}
而這一切似乎確定,直到我運行。它崩潰說SelectedItem不能綁定到數據。我不明白?
對於ItemsSource和SelectedValue也是如此......但只有以這種方式定義的SelectedValuePath屬性才能正常工作。
任何人都可以幫忙嗎?或者有沒有其他的方式來正確地綁定它? PS:順便說一句,我需要在後面的代碼中使用ComboTreeView的DataBinding。