所以在这里我来创建一个用户控件。它包含一个从组合框下降的树形视图。绑定依赖属性
实际上,有一个控件(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。