我對WPF非常陌生,我想用Datagrid
控件進行數據輸入。我堅持,如何獲取單元格數據值,將它們存儲到數據庫中?如何獲取WPF中Datagrid的單元格數據值?
和windows一樣,我們用它來通過gridview1.Rows[0].Cells[0].value
。
如何在WPF中獲取此?
我對WPF非常陌生,我想用Datagrid
控件進行數據輸入。我堅持,如何獲取單元格數據值,將它們存儲到數據庫中?如何獲取WPF中Datagrid的單元格數據值?
和windows一樣,我們用它來通過gridview1.Rows[0].Cells[0].value
。
如何在WPF中獲取此?
您可以使用以下代碼獲取。
public void DataGridCellValue(object param)
{
string clipboard = string.Empty;
if (param != null)
{
if (param is DataGridCell)
{
DataGridCell cell = (DataGridCell)param;
dynamic column = cell.Column as DataGridTextColumn;
if (cell.Column is DataGridTextColumn)
column = cell.Column as DataGridTextColumn;
if (cell.Content is TextBlock)
{
TextBlock tBlock = cell.Content as TextBlock;
clipboard = string.IsNullOrEmpty(tBlock.Text) ? string.Empty : tBlock.Text.Trim();
}
}
else if (param.GetType().IsValueType)
{
clipboard = param.ToString();
}
}
}
#endregion
}
public ICommand DataGridCellValue
{
get
{
return new DelegatingCommand((object param) =>
{
new Action(() =>
{
DataGridCopyToClipBoard(param);
}).Invoke();
});
}
}
使用的綁定,這樣你的WPF XAML
"{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"
命令和CommandParameter的是
Command="{Binding DataGridCellValue}"
CommandParameter="{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"
如果你是新來WPF然後再通過下面這兩個環節開始並瞭解它如何在WPF中完成:
作爲一個簡短的,你真的從來沒有做
gridview1.Rows[0].Cells[0].value
在WPF,而不是您可以將 網格綁定到數據源。然後嘗試從數據源收集 獲取值(如果你是不是想找UI特定內容,如:0行等的細胞0)。
我想爲用戶一個空白Datagrid的輸入數據,然後將它保存在數據庫中。爲此,我將空Datatable綁定到Datagrid,併爲用戶輸入和1個按鈕添加文本框值。而爲了保存,我將datagrid的datacontext分配給了Datatable,並在Datatable本身做了進一步的工作,它將數據存儲到數據庫中。現在請告訴我..對WPF來說這是一個很好的做法?我懷疑它是。 –
@AeshaPatel雖然你已經給出了這個描述,但我有很多問題,比如爲什麼用戶在文本框中輸入值,然後使用按鈕的事件來填充這些值。你不能只是用戶在網格中輸入文本本身。此外,您不需要將任何內容分配回數據表,只需將數據表綁定爲grid'e itemsource,並且網格中的任何新數據都將反映回您的數據表,WPF中不需要顯式代碼。如果你也給我一些代碼,我可以更好地告訴你。 –