main
 1using System.Collections.Generic;
 2using System.Linq;
 3using gorilla.utility;
 4
 5namespace solidware.financials.windows.ui.views.controls
 6{
 7    public class Row : Dictionary<string, Observable> 
 8    {
 9        DataGridTable table;
10
11        public Row(DataGridTable table)
12        {
13            this.table = table;
14        }
15
16        public virtual T ValueStoredIn<T>(Column<T> column)
17        {
18            return this[column].As<T>();
19        }
20
21        public virtual void AddToCell<T>(Column<T> column, T value)
22        {
23            AddToCell(column, (Observable)new ObservableProperty<T>(value));
24        }
25
26        public virtual void AddToCell<T>(Column<T> column, Observable value)
27        {
28            this[column] = value;
29            table.each(row =>
30            {
31                if (!row.HasValueStoredIn(column))
32                    row[column] = new ObservableProperty<T>(default(T));
33            });
34        }
35
36        public virtual bool HasValueStoredIn<T>(Column<T> column)
37        {
38            return ContainsKey(column);
39        }
40
41        public virtual Column<T> FindColumn<T>(string name)
42        {
43            return Keys.FirstOrDefault(x => x == name);
44        }
45    }
46}