Доступ к 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 в сетке
Как: использовать пользовательские редакторы для редактирования значений ячеек