【问题标题】:DevExpress ComboBox SelectedIndexChanged not working as expectedDevExpress ComboBox SelectedIndexChanged 未按预期工作
【发布时间】:2014-07-04 07:10:00
【问题描述】:

我认为有以下事件处理程序:

private void ComboBoxEdit_SelectedIndexChanged(object sender, System.Windows.RoutedEventArgs e)
{
  var sb = ((ComboBoxEdit)sender).SelectedText;
  model.SearchBy = sb;
  SearchItem.Label = sb;
}

组合项在 XAML 中硬编码:

  <dxe:ComboBoxEdit SelectedIndex="0" SelectedIndexChanged="ComboBoxEdit_SelectedIndexChanged" Height="22">
    <dxe:ComboBoxEditItem Content="Emp. No." />
    <dxe:ComboBoxEditItem Content="Id No." />
    <dxe:ComboBoxEditItem Content="Surname" />       
  </dxe:ComboBoxEdit>

然而,当我选择“Id.No”时。并且事件触发,SelectedText 返回“Emp.No.”,并且始终返回列表中的前一项。但是我没有直接使用索引(除了在标记中将 selected 设置为 0),所以虽然这看起来像 1 vs 0 错误,但它不应该是。当然“Changed”事件应该获取我在 UI 中选择的值,而“Changed”事件可以获取之前的值?

【问题讨论】:

  • 我肯定希望SelectedText 属性与当前选定的项目相同。您是否尝试过 SelectedItem 属性?
  • @GeorgeHowarth 很有趣,但 SelectedItem 提供了正确的内容。添加答案,我会接受,谢谢。
  • 我不认为它需要一个完整的答案:) 这只是一个解决方法的建议应该实际工作。要么我误解了 SelectedIndexChanged 的作用,要么是他们 API 中的错误。
  • 我会和他们一起记录。基于良好的 aspx 体验,花了很多时间说服人们购买。

标签: c# wpf devexpress


【解决方案1】:

PopupClosed="CmbReportType_PopupClosed"

    private void CmbReportType_PopupClosed(object sender, ClosePopupEventArgs e)
    {
        var cBox = sender as ComboBoxEdit;
        if (cBox.SelectedIndex != -1)
        {
            var selectedItemText = cBox.SelectedText;
        }
    }

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2022-01-24
    • 2015-05-11
    • 2020-05-15
    相关资源
    最近更新 更多