问题
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