WPF中DataGrid得到其中一行的值

2021-06-12 23:24:38 字數 1346 閱讀 1582

之前做專案中遇到使用datagrid,對datagrid中某乙個單元格進行編輯並儲存,其中在得到datagrid某個單元格中的值遇到問題,在網上查詢各種資料後終於解決問題,下面把**貼出來和大家分享一下。

如下圖,對datagrid中的編號和是否啟用編輯後,得到單元格修改後的資料,並對修改後的資料進行儲存。我剛開始的思路是:將資料來源繫結到前台頁面上,然後使用datagrid自帶的乙個屬性,將isreadonly屬性設定為false後,就可以對頁面上的資料進行編輯了,但是出現乙個問題是,在得到datagrid中某個單元格的資料時,得到的只是繫結之前的資料,得不到修改後的資料。百思不得其解,最後變換思路,首先得到datagrid的乙個單元格,由於datagrid中的乙個單元格是模板構成的,所以就要先得到這個單元格的模板。

前台xaml**:其中編號和是否啟用使用了模板

後台核心**:

此方法是得到datagrid單元格中的視覺化子項

public static t getvisualchild(visual parent) where t : visual

if (childcontent != null)

}return childcontent;

}

/// /// 得到textbox裡的值

///

/// 行索引

/// 列索引

/// textbox裡的值

private string gettextboxvalue(int rowindex, int cellindex)

return tbox.text;

}

/// /// 得到checkbox裡的值

///

/// 行索引

/// 列索引

/// checkbox裡的值

private string getcheckboxvalue(int rowindex, int cellindex)

return chk.ischecked.tostring();

}

沒有修改之前的資料:

修改之後的資料:

WPF中DataGrid控制項

設定不可自動拉伸寬度 datagrid.canuserresizecolumns false 第一列不可見 datagrid.headersvisibility datagridheadersvisibility.column 設定不可自動拉伸高度 datagrid.canuserresizerow...

WPF中DataGrid使用初步

1 自動生成列 2 取消自動生成列,手動繫結到相應字段 最後一列設定width 是為了取消空白列。對應的後台 private void window loaded object sender,routedeventargs e 雙擊datagrid,顯示相應資訊 private void datag...

WPF中DataGrid使用初步

1 自動生成列 true name datagrid canuseraddrows false mousedoubleclick datagrid mousedoubleclick 2 取消自動生成列,手動繫結到相應字段 false name datagrid canuseraddrows fals...