之前做專案中遇到使用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...