private bool ProcessChanged(EDOUnitVM edoUnit, object newValue, object oldValue) { MenuItemVM newMenuItem = newValue as MenuItemVM; MenuItemVM oldMenuItem = oldValue as MenuItemVM; if (newMenuItem == null) { return(false); } //同じアイテムが選択された場合は以降の処理は行わない(エラーが発生して戻す場合に無限ループになるのを防ぐ) if (newMenuItem == edoUnit.SelectedMenuItem) { return(false); } if (oldMenuItem != null) { if (!oldMenuItem.validate()) { this.Dispatcher.BeginInvoke(new Action(() => { oldMenuItem.IsSelected = true; })); return(false); } } edoUnit.SelectedMenuItem = newMenuItem; edoUnit.SetStatusMessage(newMenuItem.Title, false); return(true); }
public bool ValidateCurrentItem() { MenuItemVM menuItem = this.SelectedMenuItem; if (menuItem == null) { return(true); } return(menuItem.validate()); }