【问题标题】:WPF ComboBox Binding UnchangeableWPF ComboBox 绑定不可更改
【发布时间】:2010-10-12 12:32:11
【问题描述】:

我正在尝试将 ComboBox 绑定到来自对象的数据。该对象包含一个表示允许状态的列表和一个表示其当前值的字符串。我遇到的问题是,当表单加载时,它正确地将组合框的值设置为其当前值,但我无法将值更改为其他任何值。如果我单击下拉菜单并选择一个新值,它会关闭下拉菜单但保留原始值。

每个组合框都在 DataGrid 中的一行中,并且 ComboBox 包含在 DataGrid 的 RowDetailsTemplate 中。

XAML:

<ComboBox
   x:Name="cmbStatus"
   ItemsSource="{Binding Path=AllowedStateValues}"
   SelectedItem="{Binding Path=State}"    
   Height="20"
   Width="100" />

【问题讨论】:

    标签: wpf xaml combobox


    【解决方案1】:

    我也遇到了同样的问题。原来我的问题在于我的 Equals 覆盖了被绑定的项目。检查并确保多个不相等的对象没有被比较为相等。

    【讨论】:

      【解决方案2】:

      尝试将绑定 Mode 设置为 TwoWay。如果这不起作用,请使用 PresentationTraceSources.TraceLevel 属性到 High,以获取完整的详细信息。

      【讨论】:

      • 我试过 Mode=TwoWay 并没有得到任何改变。我不确定 PresentationTraceSources.TraceLevel="High" 应该完成什么。
      • 它只会跟踪有关绑定集的所有重要信息。可能会提示问题的根源。
      【解决方案3】:

      状态声明:

      private string _state;
          public string State { 
              get { return _state; }
              set
              {
                  if (AllowedStateValues != null && AllowedStateValues.Contains(value))
                  {
                      _state = value;
      
                  }
              }
      
          }
      

      更改组合框时我没有引发事件,但更改组合框时似乎也没有调用设置器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-05
        • 2015-09-14
        • 1970-01-01
        • 1970-01-01
        • 2012-05-12
        • 2011-11-01
        • 2015-04-07
        • 1970-01-01
        相关资源
        最近更新 更多