【问题标题】:DevExpress ExtraEditors checkedcombobox doesn't synchronize?DevExpress ExtraEditors 选中的组合框不同步?
【发布时间】:2012-04-17 03:29:46
【问题描述】:

我正在尝试使用两个 devExpress checkedComboBoxes(框)来维护一个列表及其反列表(即两个组合框中的相同项目,并且它们必须仅在其中一个列表中进行检查)。

我使用的是 C++/CLI,所以对于我处理的每个盒子

EditValueChanged += gcnew System::EventHandler(this, &SelectionControl::exclBox_EditValueChanged);

调用到

void
box_ToggleAntibox(
DevExpress::XtraEditors::CheckedComboBoxEdit^ box,
DevExpress::XtraEditors::CheckedComboBoxEdit^ antibox )
{
using namespace DevExpress::XtraEditors::Controls ;

cli::array<String ^> ^ sAnti = gcnew cli::array<String ^>(2*box->Properties->Items->Count) ;
int ii = 0;
String ^ delim = ", ";
for each (CheckedListBoxItem^ i in box->Properties->GetItems()) {
    if (i->CheckState==Windows::Forms::CheckState::Unchecked)
    {
        sAnti[ii] = i->Value->ToString();
        ++ii;
        sAnti[ii] = delim;
        ++ii;
    }
}

String ^ result = String::Concat(sAnti);
antibox->EditValue = result;

}

正如 devExpress 文档所说的设置编辑值,而不是简单地遍历框列表并将反列表设置为 !Checked。

但是,它似乎不起作用(正确的项目被添加到文本窗口,但没有检查任何内容)。此外,如果我在事件完成后查看我的框,我发现文本窗口中的字符串值是正确的(反映了我选择的内容),但如果我打开它,则所有项目都被选中。

有人有什么建议我可以试试吗?

设置每个项目的 CheckState::Checked 会更好吗?

谢谢!

【问题讨论】:

  • 如果我使用antibox-&gt;SetEditValue(result),则不会检查任何内容,并且文本窗口中不会出现任何内容。

标签: c++-cli devexpress checked


【解决方案1】:

我花了一些时间与 DevExpress 支持人员交谈。简短的回答是,这应该有效——但对我们无效。您的情况可能会有所不同,但我们的解决方案是将两个组合框放在表单上的单独控件上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    相关资源
    最近更新 更多