【问题标题】:combo box not refreshing with new data组合框不刷新新数据
【发布时间】:2018-02-06 05:12:48
【问题描述】:

我在后面的代码中有一个可观察的集合属性

 public ObservableCollection<ChildGroupComboBoxBO> ChildGroupOC {
      get 
      { return childGroupOC;}
      set                 
      {
         childGroupOC = value;               
      }
 }

此集合绑定到 xaml 中的组合框:

<ComboBox ItemsSource="{Binding ChildGroupOC}" DisplayMemberPath="groupName" />

当我读取加载页面时,我从数据库中读取数据,加载 observable 集合并将它绑定到组合框就好了。但是,当我向数据库添加一条记录并使用完全相同的例程再次加载组合框时,即使我可以看到它已添加到内存中的集合中,新记录也不会显示在列表中。如何让组合框刷新它的列表?

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    不要重新创建 observable 集合。清除其值并再次添加所有值。最好将您存储到数据库的一个值简单地添加到现有数据库中。

    绑定表达式绑定到旧实例并且您设置了ChildGroupOC = new ObservableCollection(...) - 绑定仍然跟踪旧实例。

    【讨论】:

    • 我需要插入数据库的值的 id,它是一个身份字段。我应该查询最大值然后手动将其添加到可观察集合中吗?看起来很乱。
    • @nikotromus 取决于在ChildGroupComboBoxBO 中完成了多少工作所有 ID 的 DBContext 并查看哪个 ID 尚未出现在我的可观察或...几种可能性
    • 有道理。我可以有问题地实例化一个新对象并且它没有接受更改,这似乎很奇怪。现在我知道它是如何工作的,我可以使用它了。谢谢帕特里克。
    猜你喜欢
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多