123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- namespace Flyinsono.DBCopy.Tool
- {
- /// <summary>
- /// Base view model
- /// </summary>
- public abstract class ViewModel : NotificationObject
- {
- private string _description;
- private bool _isVisible = true;
- private bool _isEnable = true;
- private bool _isDisposed;
- /// <summary>
- /// Description, display on UI
- /// </summary>
- public string Description
- {
- get { return _description; }
- set
- {
- if (_description != value)
- {
- _description = value;
- OnPropertyChanged(() => Description);
- }
- }
- }
- /// <summary>
- /// A Flag indicates this UI is visible
- /// </summary>
- public bool IsVisible
- {
- get { return _isVisible; }
- set
- {
- if (_isVisible != value)
- {
- _isVisible = value;
- OnIsVisible();
- OnPropertyChanged(() => IsVisible);
- }
- }
- }
- /// <summary>
- /// A Flag indicates this UI is enabled
- /// </summary>
- public bool IsEnabled
- {
- get { return _isEnable; }
- set
- {
- if (_isEnable != value)
- {
- _isEnable = value;
- OnIsEnabledChanged();
- OnPropertyChanged(() => IsEnabled);
- }
- }
- }
- protected virtual void OnIsEnabledChanged()
- {
- //TODO On IsEnabled changed, child class can override implement it
- }
- protected virtual void OnIsVisible()
- {
- //child class can override implement it
- }
- public void Dispose()
- {
- if (!_isDisposed)
- {
- DoDispose();
- _isDisposed = true;
- }
- }
- protected virtual void DoDispose()
- {
- //implement it in child class
- }
- }
- }
|