I am trying to implement undo and redo to my application. To realize that stuff - I'm using the Monitored Undo Framework and MVVM light.
Here is some code (without CanExecute,..)
public class ViewModel_Main : ViewModelBase, ISupportsUndo
{
public ViewModel_Main(IRaDataService dataService)
{
Networks = new ObservableCollection<ViewModel_Network>();
}
private const string NetworksPropertyName = "Networks";
private ObservableCollection<ViewModel_Network> _Networks;
public ObservableCollection<ViewModel_Network> Networks
{
get
{
return _Networks;
}
set
{
_Networks = value;
RaisePropertyChanged(NetworksPropertyName);
}
}
private void AddNetworkCommand_Execute()
{
ViewModel_Network newNetwork = new ViewModel_Network("undefinded.RaNet", "x");
DefaultChangeFactory.Current.OnChanging(this, NetworksPropertyName, Networks, newNetwork);
Networks.Add(newNetwork);
}
private void UndoCommand_Execute()
{
UndoService.Current[this].Undo();
}
public object GetUndoRoot()
{
return this;
}
}
So let's get to my problem: the undo does not work.. but why?
Thank you!