Доступ к Comboboxedit в GridControl

У меня есть Gridcontrol, который содержит comboboxedit. Вопрос в том, как получить к нему доступ в коде

XAML

<dxg:GridControl x:Name="gridEntree" Margin="0,338,3,0" IsEnabled="True" GotFocus="gridEntree_GotFocus"  >
        <dxg:GridControl.Columns>
            <dxg:GridColumn  FieldName="CODE_MAT" Header="Materiel" >
                <dxg:GridColumn.EditTemplate>
                    <ControlTemplate>
                        <dxe:ComboBoxEdit x:Name="cmbmat" ItemsSource="{x:Static my:ds_stock.Data}"
                           DisplayMember="NOM_APPAREIL" ValueMember="CODE_MATERIEL"
                            SelectedIndexChanged="cmbmat_SelectedIndexChanged"  />
                    </ControlTemplate>
                </dxg:GridColumn.EditTemplate>
            </dxg:GridColumn>

1 ответ

Решение

Во-первых, Name свойство элемента управления, используемого для редактирования значений ячеек, должно быть установлено в "PART_Editor", Затем вы можете использовать событие ViewEditor в View для доступа к редактору после того, как он действительно отображается в ячейке Grid:

void view_ShownEditor(object sender, DevExpress.Xpf.Grid.EditorEventArgs e) {
    if (e.Column.FieldName == "CODE_MAT") {
        var cmbmat = (ComboBoxEdit)e.Editor;
        // do something (e.g. subscribe events)
    }
}

После закрытия редактора View запускает событие HiddenEditor - вы можете обработать это событие, чтобы отклонить некоторые изменения (например, отписаться от событий редактора).

Связанные примеры:
Как предоставить данные для ComboBoxEdit в сетке
Как: использовать пользовательские редакторы для редактирования значений ячеек

Другие вопросы по тегам