diff --git a/Samples/SimpleEditSample/MainWindow.xaml b/Samples/SimpleEditSample/MainWindow.xaml
index fd483f3..4dfbdcc 100644
--- a/Samples/SimpleEditSample/MainWindow.xaml
+++ b/Samples/SimpleEditSample/MainWindow.xaml
@@ -4,12 +4,15 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:System.Windows.Controls;assembly=DotNetProjects.TreeViewEx"
xmlns:Model="clr-namespace:W7StyleSample.Model"
- Title="MainWindow" Height="350" Width="261"
+ Title="MainWindow" Height="350" Width="521"
AutomationProperties.Name="TestApp2Window" >
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+ SelectedItems="{Binding SelectedItems}"
+ ItemsSource="{Binding FirstNode.Children}">
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/SimpleEditSample/MainWindow.xaml.cs b/Samples/SimpleEditSample/MainWindow.xaml.cs
index 02fb6a4..1c60acb 100644
--- a/Samples/SimpleEditSample/MainWindow.xaml.cs
+++ b/Samples/SimpleEditSample/MainWindow.xaml.cs
@@ -1,5 +1,6 @@
namespace W7StyleSample
{
+ using TreeViewEx.SimpleSample.ViewModel;
#region
using W7StyleSample.Model;
@@ -15,37 +16,29 @@ public partial class MainWindow
public MainWindow()
{
- var firstNode = new Node { Name = "element" };
- var first1 = new Node { Name = "element1" };
- var first2 = new Node { Name = "element2" };
- var first11 = new Node { Name = "element11" };
- var first12 = new Node { Name = "element12" };
- var first13 = new Node { Name = "element13", IsExpandedValue = false };
- var first14 = new Node { Name = "element14", IsExpandedValue = false };
- var first15 = new Node { Name = "element15" };
- var first131 = new Node { Name = "element131" };
- var first132 = new Node { Name = "element132" };
-
- for (int i = 1; i <= 50; i++)
- {
- first14.Children.Add(new Node { Name = "element14_" + i });
- }
-
- firstNode.Children.Add(first1);
- firstNode.Children.Add(first2);
- first1.Children.Add(first11);
- first1.Children.Add(first12);
- first1.Children.Add(first13);
- first1.Children.Add(first14);
- first1.Children.Add(first15);
- first13.Children.Add(first131);
- first13.Children.Add(first132);
-
- DataContext = firstNode;
+ DataContext = new MainWindowViewModel();
InitializeComponent();
}
#endregion
+
+ private void TreeViewExItem_OnEditing(object sender, System.Windows.RoutedEventArgs e)
+ {
+ var tvei = (System.Windows.Controls.TreeViewExItem)sender;
+ Node nodeContext = (Node)tvei.DataContext;
+ var viewModel = (MainWindowViewModel)DataContext;
+ viewModel.EditedText = $"{nodeContext.Name} is being edited.";
+ e.Handled = true;
+ }
+
+ private void TreeViewExItem_OnEdited(object sender, System.Windows.RoutedEventArgs e)
+ {
+ var tvei = (System.Windows.Controls.TreeViewExItem)sender;
+ Node nodeContext = (Node)tvei.DataContext;
+ var viewModel = (MainWindowViewModel)DataContext;
+ viewModel.EditedText = $"{nodeContext.Name} was edited.";
+ e.Handled = true;
+ }
}
}
\ No newline at end of file
diff --git a/Samples/SimpleEditSample/Model/Node.cs b/Samples/SimpleEditSample/Model/Node.cs
index 34160c5..1febe00 100644
--- a/Samples/SimpleEditSample/Model/Node.cs
+++ b/Samples/SimpleEditSample/Model/Node.cs
@@ -3,13 +3,14 @@
#region
using System.Collections.ObjectModel;
+ using System.ComponentModel;
- #endregion
+ #endregion
- ///
- /// Model for testing
- ///
- public class Node
+ ///
+ /// Model for testing
+ ///
+ public class Node : INotifyPropertyChanged
{
#region Constructors and Destructors
@@ -27,6 +28,19 @@ public Node()
string name;
public string Name { get { return name; } set { name = value; } }
public bool IsExpandedValue { get; set; }
+ private bool _isEditingValue;
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ public bool IsEditingValue
+ {
+ get => _isEditingValue;
+ set
+ {
+ _isEditingValue = value;
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(IsEditingValue)));
+ }
+ }
#endregion
#region Public Methods
diff --git a/Samples/SimpleEditSample/RelayCommand.cs b/Samples/SimpleEditSample/RelayCommand.cs
new file mode 100644
index 0000000..9d8a9c9
--- /dev/null
+++ b/Samples/SimpleEditSample/RelayCommand.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text;
+using System.Windows.Input;
+
+namespace DragNDropSample
+{
+ public class RelayCommand : ICommand
+ {
+ #region Fields
+
+ readonly Action