main
1using System;
2using System.ComponentModel;
3
4namespace solidware.financials.windows.ui.views.controls
5{
6 public interface Observable<T> : Observable, IDataErrorInfo
7 {
8 new T Value { get; set; }
9 void WhenChanged(Action observer);
10 void Register<Severity>(Func<T, bool> failCondition, Func<string> errorMessage) where Severity : presenters.validation.Severity, new();
11 }
12
13 public interface Observable : INotifyPropertyChanged
14 {
15 object Value { get; }
16 }
17
18 static public class ObservableExtensions
19 {
20 static public void Notify<T>(this Observable<T> observable, ObservableCommand command)
21 {
22 observable.WhenChanged(() => command.notify_observers());
23 }
24 }
25}