Hello,
I need to get selected TreeView Node name and bind it to ViewModel property.
I used the following behavior to get SelectedItem from WPF TreeView, but when changed to RadTreeView the SelectedItemChanged is not recognized.
Is there any example on ho to get SelectedItem using WPF MVVM ?
public class TreeViewSelectedItemBlendBehavior : Behavior<RadTreeView>
{
//dependency property
public static readonly DependencyProperty SelectedItemProperty =
DependencyProperty.Register("SelectedItem", typeof(object),
typeof(TreeViewSelectedItemBlendBehavior),
new FrameworkPropertyMetadata(null) { BindsTwoWayByDefault = true });
//property wrapper
public object SelectedItem
{
get { return (object)GetValue(SelectedItemProperty); }
set { SetValue(SelectedItemProperty, value); }
}
protected override void OnAttached()
{
base.OnAttached();
this.AssociatedObject.SelectedItemChanged += OnTreeViewSelectedItemChanged;
}
protected override void OnDetaching()
{
base.OnDetaching();
if (this.AssociatedObject != null)
this.AssociatedObject.SelectedItemChanged -= OnTreeViewSelectedItemChanged;
}
private void OnTreeViewSelectedItemChanged(object sender,
RoutedPropertyChangedEventArgs<object> e)
{
this.SelectedItem = e.NewValue;
}
}
Thank you,
Vadim