Selection changed event of ComboBoxEditSettings in a Devexpress gridcontrol(Silverlight)

谁都会走 提交于 2019-12-11 07:28:07

问题


I am doin silverlight 4 App.

I have devexpress gridcontrol of 5 columns where i have placed ComboBoxEditor in a column .

<dxg:GridControl x:Name="grid_currentillnes">
                            <dxg:GridControl.Columns>
                                <dxg:GridColumn FieldName="Complaints" Header="Complaints/Disease" />
                                <dxg:GridColumn FieldName="Duration" Header="Duratiion" />
                                <dxg:GridColumn FieldName="Period" Header="Period" />
                                <dxg:GridColumn Header="Treatment" FieldName="Treatment">
                                    <dxg:GridColumn.EditSettings>
                                        <dxe:ComboBoxEditSettings x:Name="cmbx_treatmenttype" PopupMaxHeight="150"  DisplayMember="Treatment" ValueMember="Treatment"  />
                                    </dxg:GridColumn.EditSettings>
                                </dxg:GridColumn>
                                <dxg:GridColumn Header="Details" FieldName="Details" />
                            </dxg:GridControl.Columns>
                            <dxg:GridControl.View>
                                <dxg:TableView Name="tableView4" ShowGroupPanel="False"  NewItemRowPosition="Top" NavigationStyle="Cell"  />
                            </dxg:GridControl.View>
                        </dxg:GridControl>

I want get the selection changed event of the combobox editor but no such event exist..How is this done??


回答1:


There is only one editor at one time when View is in the editing mode. After this editor has been shown, a View fires the GridViewBase.ShownEditor event. So you can use this event to subscribe any event(e.g ComboBoxEdit.SelectedIndexChanged) of active editor (GridViewBase.ActiveEditor). To unsubscribe the event you can use the GridViewBase.HiddenEditor:

tableView3.ShownEditor += new EditorEventHandler(tableView3_ShownEditor);
tableView3.HiddenEditor += new EditorEventHandler(tableView3_HiddenEditor);
//...
void tableView3_ShownEditor(object sender, EditorEventArgs e) {
    if(e.Column.FieldName == "Treatment") {
        ((ComboBoxEdit)tableView3.ActiveEditor).SelectedIndexChanged += ComboBoxEdit_SelectedIndexChanged;
    }
}
void tableView3_HiddenEditor(object sender, EditorEventArgs e) {
    if(e.Column.FieldName == "Treatment") {
        ((ComboBoxEdit)tableView3.ActiveEditor).SelectedIndexChanged -= ComboBoxEdit_SelectedIndexChanged;
    }
}
void ComboBoxEdit_SelectedIndexChanged(object sender, RoutedEventArgs e) {
    // do something
}


来源:https://stackoverflow.com/questions/9510679/selection-changed-event-of-comboboxeditsettings-in-a-devexpress-gridcontrolsilv

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!