1. 程式人生 > >C#關於DataGrid獲取滑鼠選中某行的資料

C#關於DataGrid獲取滑鼠選中某行的資料

最近剛好在學習C#與資料庫的結合使用,DataGrid控制元件用於顯示資料庫表中的資訊,有個想法希望在滑鼠點選資料庫表中的某一行時獲取到該行的各個資料,查詢網上相關資料,對我來說可以參考的是這兩篇網頁:

參考第二篇網頁樓主的程式碼,我在程式設計中也遇到了五樓網友遇到的【獲取到rowSelected是空】這個問題。

在執行中打斷點檢視DataGrid的資料,發現rowSelectd的值並不是在SelectedItem中。

 我們需要的滑鼠選中的行資料其實是在dg.Items.CurrentItem中。如下圖:

 重新執行即可獲取資料錶行中各個資料。

貼出程式碼如下,由於我使用的是MVVM框架,此為ViewModel中的程式碼:

        public  void SelectionChangedEx(object sender)
        {
            DataGrid dg= (DataGrid)sender;
            DataRowView rowSelected = dg.Items.CurrentItem as DataRowView;

            if (rowSelected != null)
            {
                //獲取行資料
                GoodsTypeText = rowSelected["物品類別"].ToString();
                GoodsText = rowSelected["物品型號"].ToString();
                PersonText = rowSelected["借用人"].ToString();
                DateText = rowSelected["日期"].ToString();
            }
        }

執行效果圖: