Итак, здесь я создаю пользовательский элемент управления.Он состоит из дерева, выпадающего из выпадающего списка.
На самом деле есть кнопка с элементом управления (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: кстати, мне нужно использовать DataBinding для ComboTreeView в моем коде позже.