2012-03-01 31 views
1

我在做silverlight 4應用程序。選擇在Devexpress gridcontrol中更改了ComboBoxEditSettings的事件(Silverlight)

我有devexpress 5列的gridcontrol,我已經把ComboBoxEditor放在一列中。

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

我想要得到的組合框編輯但沒有這樣的事件的選擇更改事件exist..How是這樣做?

回答

6

當View處於編輯模式時,一次只有一個編輯器。在此編輯器顯示之後,View會觸發GridViewBase.ShownEditor事件。因此,您可以使用此事件訂閱活動編輯器的任何事件(例如ComboBoxEdit.SelectedIndexChanged)(GridViewBase.ActiveEditor)。要取消訂閱活動,您可以使用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 
} 
+0

這是一個很好的解決方案。學到了新東西。 =)+1從我 – Willem 2012-03-02 10:52:31

+0

天才..非常感謝它的作品... – pheonix4eva 2012-03-02 11:03:03

相關問題