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}