using Gestor.Application.Helpers; using System; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Threading; using System.Windows; namespace Gestor.Application.ViewModels.Generic { public class DialogViewModel : INotifyPropertyChanged { private string _message; private string _acceptContent; private string _cancelContent; private Visibility _cancelVisibility; public string AcceptContent { get { return this._acceptContent; } set { this.MutateVerbose(ref this._acceptContent, value, this.RaisePropertyChanged(), "AcceptContent"); } } public string CancelContent { get { return this._cancelContent; } set { this.CancelVisibility = (string.IsNullOrEmpty(value) ? Visibility.Collapsed : Visibility.Visible); this.MutateVerbose(ref this._cancelContent, value, this.RaisePropertyChanged(), "CancelContent"); } } public Visibility CancelVisibility { get { return this._cancelVisibility; } set { this.MutateVerbose(ref this._cancelVisibility, value, this.RaisePropertyChanged(), "CancelVisibility"); } } public string Message { get { return this._message; } set { this.MutateVerbose(ref this._message, value, this.RaisePropertyChanged(), "Message"); } } public DialogViewModel() { } private Action RaisePropertyChanged() { return (PropertyChangedEventArgs args) => { PropertyChangedEventHandler propertyChangedEventHandler = this.PropertyChanged; if (propertyChangedEventHandler == null) { return; } propertyChangedEventHandler(this, args); }; } public event PropertyChangedEventHandler PropertyChanged; } }