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;
            }
        }


これでいいのかはさておき・・・・