Devexpress wpf CellEditor 绑定到 class 个实例

Devexpress wpf CellEditor bind to class instance

我有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
视图模型:

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>

我将 CellEditor 绑定到 DynamicTableModel class 的 属性。但是,如果我尝试在任何单元格中编辑文本,它就会抛出 NullReferenceException。
我无法将 class DynamicTableModel 更改为字符串,因为我需要其他属性。我尝试使用转换器属性,但是当我更改文本时它会创建新实例。
请帮助我更改单元格中的文本。 项目 link:https://github.com/Kolgotin/DynamicGridControl

结果我刚刚添加了这个 属性:

<DataTemplate>
    <dxe:TextEdit Name="PART_Editor" HorizontalContentAlignment="Stretch">
        <dxe:TextEdit.EditTemplate>
            <ControlTemplate>
                <dxe:TextEdit x:Name="teNewValue"
                            HorizontalAlignment="Stretch"
                            EditValue="{Binding Value.StrValue}"/>
            </ControlTemplate>
        </dxe:TextEdit.EditTemplate>
    </dxe:TextEdit>
</DataTemplate>

处理程序在 "set" 方法中工作