0
在我的Datagrid中,我允許用戶編輯一些單元格,編輯完這些單元格後,我想將更改提交到數據庫(輸入)。我遇到麻煩在網上找資源來實現這一目標。編輯單元格事件獲取單元格值和位置
我用一個事件:
CellEditEnding但該事件只是爲我提供了行和改變細胞的膠原如何。我如何使用這些來發現細胞本身並獲得價值?
在我的Datagrid中,我允許用戶編輯一些單元格,編輯完這些單元格後,我想將更改提交到數據庫(輸入)。我遇到麻煩在網上找資源來實現這一目標。編輯單元格事件獲取單元格值和位置
我用一個事件:
CellEditEnding但該事件只是爲我提供了行和改變細胞的膠原如何。我如何使用這些來發現細胞本身並獲得價值?
您可以使用此功能在此link
public static DataGridCell GetCell(this DataGrid grid, DataGridRow row, int column)
{
if (row != null)
{
DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(row);
if (presenter == null)
{
grid.ScrollIntoView(row, grid.Columns[column]);
presenter = GetVisualChild<DataGridCellsPresenter>(row);
}
DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column);
return cell;
}
return null;
}
發現,從事件處理函數調用它:
object cellvalue = DataGridCell(yourgrid, e.Row, e.Column.DisplayIndex).GetValue;
這個功能也被稱爲GetCell()
函數內
public static T GetVisualChild<T>(Visual parent) where T : Visual
{
T child = default(T);
int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < numVisuals; i++)
{
Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
child = v as T;
if (child == null)
{
child = GetVisualChild<T>(v);
}
if (child != null)
{
break;
}
}
return child;
}
錯誤非通用方法'System.Windows.FrameworkElement.GetVisualChild(int)'不能與類型參數一起使用 – user781439
我編輯了我的答案 – AbZy
,不要忘記使用System.Windows.Controls.Primitives包含這個命名空間' – AbZy