Вы можете получить, используя следующий код.
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();
});
}
}
Используйте Binding, как, как это в вашем WPF XAML
"{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"
Командное и CommandParameter являются
Command="{Binding DataGridCellValue}"
CommandParameter="{Binding CurrentCell, RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"
Я хотел пустой DataGrid для пользователя для ввода данных, а затем сохранить его в базе данных. Для этого я связал пустой Datatable с Datagrid и оставил несколько текстовых полей для ввода User и 1, что добавит значения текстовых полей в сетку. и для сохранения я присвоил datacontext datagrid для Datatable и проделал дальнейшую работу над самой Datatable, которая передавала данные в базу данных. Теперь, пожалуйста, скажите мне ... это хорошая практика для WPF ???? Я сомневаюсь, что это так. –
@AeshaPatel, хотя вы дали это описание, у меня есть много вопросов, например, почему пользователь вводит значения в текстовое поле, а затем вы используете событие кнопки, чтобы заполнить сетку этими значениями. не можете ли вы просто вводить текст в самой сетке. Также вам не нужно присваивать что-либо обратно в datatable, просто привяжите свою таблицу данных как источник данных grid'e и любые новые данные в сетке будут отражены обратно к вашему datatable, для этого в WPF не требуется явно выраженный код. Я могу сказать вам лучше, если вы дадите мне и код. –