namespace DevExpress.DevAV.ViewModels { using System; using DevExpress.DevAV.ViewModels; using DevExpress.Mvvm.DataAnnotations; using DevExpress.Mvvm.POCO; public class QuoteMapViewModel : QuoteViewModel { public virtual Stage Stage { get; set; } [Command] public void SetHighStage() { Stage = Stage.High; } public bool CanSetHighStage() { return Stage != Stage.High; } [Command] public void SetMediumStage() { Stage = Stage.Medium; } public bool CanSetMediumStage() { return Stage != Stage.Medium; } [Command] public void SetLowStage() { Stage = Stage.Low; } public bool CanSetLowStage() { return Stage != Stage.Low; } [Command] public void SetUnlikelyStage() { Stage = Stage.Unlikely; } public bool CanSetUnlikelyStage() { return Stage != Stage.Unlikely; } protected virtual void OnStageChanged() { this.RaiseCanExecuteChanged(x => x.SetHighStage()); this.RaiseCanExecuteChanged(x => x.SetMediumStage()); this.RaiseCanExecuteChanged(x => x.SetLowStage()); this.RaiseCanExecuteChanged(x => x.SetUnlikelyStage()); RaiseStageChanged(); } public event EventHandler StageChanged; void RaiseStageChanged() { EventHandler handler = StageChanged; if(handler != null) handler(this, EventArgs.Empty); } } }