код компонента
<DataGrid Name="dgMain" Grid.Row="1" Grid.ColumnSpan="3"
Margin="10"
ColumnWidth="100"
SelectionUnit="Cell"
dataGrid2D:ItemsSource.ColumnHeadersSource="{Binding ColumnHeaders}"
dataGrid2D:ItemsSource.RowHeadersSource="{Binding RowHeaders}"
dataGrid2D:ItemsSource.RowsSource="{Binding Data, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="CellEditEnding">
<i:InvokeCommandAction Command="{Binding ParseValue, UpdateSourceTrigger=PropertyChanged}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
код команды
public ICommand ParseValue { get; }
private void Eval()
{
for (int i = 0; i < columnCount; i++)
for (int j = 0; j < rowCount; j++)
if (Data[i][j] != null)
{
Data[i][j] = RM(Data[i][j]);
OnPropertyChanged(nameof(Data));
}
}
private string RM(string dataString)
{
return dataString.Remove(0,1);
}
проблем сразу несколько:
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники