GridAdapter.cs


class GridAdapter:
def __init__(self, grd):
self.grid = grd
self.dTable = self.grid.View # .DataSource
self.grid.SelectionChanged += self.Grid_Click # .MouseDown
self.row = -1
self.grid.ItemsSource = ObservableCollection[object]()

  • DataSource に代えて、View の値を参照しています。
  • MouseDown に代えて、SelectionChanged にイベントハンドラーを登録しています。
  • ItemsSource が保持する子要素は、ObservableCollection に依存します。


def Grid_Click(self, sender, e):
self._eventLog("Grid_Click", sender, e) # (@.@) keep a log
hti = self.grid.HitTest(e.X, e.Y)
if hti.Type == ListView.HitTestType.Cell: # DataGrid.
self.row = hti.Row
《Note》参考文献との違い

  • イベントに関するログ情報を確認できるようにしています。


def _eventLog(self, s, sender, e):
print ">>> %s"%s
for e in sender, e:
print "... %s"%e

def Add(self, p):
self.grid.ItemsSource.Add(p) # .Rows

  • Rows に代えて、ItemsSource に子要素を追加しています。