Hello.
I need update value of RadGridView GridViewCell then she in Edit Mode.
I use MainGrid.BeginningEdit event:
private void MainGridOnBeginningEdit(object sender, GridViewBeginningEditRoutedEventArgs args)
{
if(args == null || args.Cell.Value != null) return;
if (BeginningCellEditEvent != null)
BeginningCellEditEvent.Invoke(args);
}
In BeginningCellEditEvent handler i try set new cell value:
private void ActivityDateFactTable_OnBeginningCellEditEvent(GridViewBeginningEditRoutedEventArgs args)
{
if((args?.Cell == null || args.Cell.Value != null)) return;
if(!(args.Row.DataContext is ViewModel viewModel)) return;
var bindingPath = args.Cell.DataColumn.DataMemberBinding.Path
.Path
.Replace("[", "")
.Replace("]", "")
.Split('_');
if(bindingPath.Length < 3) return;
var calcValue = viewModel.GetCalculatedValue(bindingPath[0]);
if (calcValue != null)
{
args.Cell.Value = calcValue;
args.Cell.UpdateLayout();
}
}
or
private void ActivityDateFactTable_OnBeginningCellEditEvent(GridViewBeginningEditRoutedEventArgs args)
{
if((args?.Cell == null || args.Cell.Value != null)) return;
if(!(args.Row.DataContext is ViewModel viewModel)) return;
var bindingPath = args.Cell.DataColumn.DataMemberBinding.Path
.Path
.Replace("[", "")
.Replace("]", "")
.Split('_');
if(bindingPath.Length < 3) return;
var calcValue = viewModel.GetCalculatedValue(bindingPath[0]);
if (calcValue != null)
{
this.Dispatcher.BeginInvoke
((Action) delegate
{
args.Cell.Value = calcValue;
args.Cell.UpdateLayout();
}
);
}
}
Cell.Value is changed, but in UI not updated (as seen on screenshot).
How i can update value in UI after changing him in code and i need that cell stays in edit mode?