DataGridで、先頭の項目がSelectionChangedイベント発生不可
http://d.hatena.ne.jp/shot6/20080827#1219823534の続きともいえる
うそだと思う人もいるかもしれないですが、Silverlight2のDataGridでは
先頭項目に勝手にフォーカスがあたるので、それ以降先頭項目でSelectionChangedイベントが飛ばないw
言いたいこと:こらーーーーwwwww
というわけで汚いですが対応方法.
- 先頭項目は捨てデータを入れる.
- LoadingRowイベントからRow.GetIndex()で先頭項目だけVisible.Collapsedにする
public Page() { InitializeComponent(); List<Item> itemList = new List<Item>(); Item i0 = new Item() { Name = "DUMMY", Address = "DUMMY" }; Item i1 = new Item() { Name = "aaa", Address = "AAA" }; Item i2 = new Item() { Name = "bbb", Address = "BBB" }; Item i3 = new Item() { Name = "ccc", Address = "CCC" }; itemList.Add(i0); itemList.Add(i1); itemList.Add(i2); itemList.Add(i3); grid.ItemsSource = itemList; grid.LoadingRow += new EventHandler<DataGridRowEventArgs>(grid_LoadingRow); } void grid_LoadingRow(object sender, DataGridRowEventArgs e) { int index = e.Row.GetIndex(); if (index == 0) { e.Row.Visibility = Visibility.Collapsed; } }
これでいいのかはさておき・・・・