1 //视图设计器中拖动一个barManager,添加一个bar,再添加一个BarEditItem控件,如下代码: 2 3 private: DevExpress::XtraEditors::Repository::RepositoryItemCheckEdit^ repositoryItemCheckEdit2; 4 private: DevExpress::XtraBars::BarEditItem^ biIsOR; 5
6 7 8 // 9 // biIsOR 10 // 11 this->biIsOR->Caption = L"OR"; 12 this->biIsOR->Edit = this->repositoryItemCheckEdit2; 13 this->biIsOR->EditValue = false; 14 15 16 // 为biIsOR的Edit添加一个EditValueChanging事件,该事件捕获CheckEditValue。
17 // repositoryItemCheckEdit2 18 // 19 this->repositoryItemCheckEdit2->AutoHeight = false; 20 this->repositoryItemCheckEdit2->Name = L"repositoryItemCheckEdit2"; 21 this->repositoryItemCheckEdit2->ValueChecked = true ; 22 this->repositoryItemCheckEdit2->EditValueChanging += gcnew DevExpress::XtraEditors::Controls::ChangingEventHandler(this, &myOpenFilterDlg::repositoryItemCheckEdit2_EditValueChanging); 23
奇怪的是, (bool)biIsOR->EditValue 并不能捕获当前Value值,
所以在biIsOR或者repositoryItemCheckEdit2 中添加:Click事件,CheckedEditChanged事件,EditValueChanged事件等都不能捕获,
并且也没有e->NewValue属性;
需要通过 repositoryItemCheckEdit2 中添加EditValueChanging事件,
通过 e->NewValue 获取当前值,e->OldValue 获取之前的值;


在DevExpress的XtraBars组件中,通过BarEditItem的EditValue直接获取当前Value值存在困难。传统的Click、CheckedEditChanged或EditValueChanged事件无法提供所需的新值。解决方法是在repositoryItemCheckEdit2中订阅EditValueChanging事件,通过该事件的e.NewValue属性来获取当前值,而e.OldValue用于获取之前的值。
3635

被折叠的 条评论
为什么被折叠?



