У меня есть dxg: GridControl. xaml:
<dxg:GridControl Name="DynamicGridControl"
ItemsSource="{Binding CommonEditCollection, Mode=TwoWay}"
SelectionMode="Cell"
AutoGenerateColumns="AddNew"
AutoGeneratedColumns="GridControl_AutoGeneratedColumns">
<dxmvvm:Interaction.Behaviors>
<lc:CellSelectionBehavior SelectedCells="{Binding SelectedCells, Mode=TwoWay}"/>
</dxmvvm:Interaction.Behaviors>
</dxg:GridControl>
ItemsSource связывается с CommonEditCollection viewmodel:
public ObservableCollection<Dictionary<int, DynamicTableModel>> CommonEditCollection { get; set; }
модель:
public class DynamicTableModel
{
public double CellWidth { get; set; }
public string StrValue{ get; set; }
public bool IsBorerNull { get; set; }
public DynamicTableModel(string strVal, double cellWidth, bool isBorerNull = false)
{
StrValue = strVal;
CellWidth = cellWidth;
IsBorerNull = isBorerNull;
}
}
В файле xaml я устанавливаю ресурсы для стиля ячеек (я хочу объединить несколько ячеек):
<DataTemplate x:Key="CellDataTemplate">
<StackPanel>
<Border ...
</Border.Style>
</Border>
<dxg:CellEditor Content="{Binding Value.StrValue}"/>
</StackPanel>
</DataTemplate>
I привязать CellEditor к свойству класса DynamicTableModel. Но если я попытаюсь отредактировать текст в любой ячейке, он выдаст исключение NullReferenceException. Я не могу изменить класс DynamicTableModel на строку, потому что мне нужны другие свойства. И я попытался использовать атрибут конвертора, но он создает новый экземпляр, когда я изменяю текст. Помогите мне пожалуйста изменить текст в ячейках. Ссылка на проект: https://github.com/Kolgotin/DynamicGridControl