当前位置: 首页 > 知识库问答 >
问题:

WPF“组合框”项源属性已更改,选定项属性设置为 null

公冶子安
2023-03-14

发生的问题是,每当 WPF 组合框项源属性更改时,所选项属性都设置为 null。

重现问题的要求:

  1. 原始项源是不是值类型的对象的集合
  2. 选定值绑定到某个属性
  3. 已设置选定值路径
  4. 选定项是原始项源中的某些项
  5. New ItemsSource 是与原始对象类型相同的对象的集合
  6. 不包含对内存中与当前选定项相同的对象的引用的项源

实际上我想在数据网格寺庙中绑定组合框,组合框集合存在于视图模型中,当我更改第一列属性时,其他行组合框项变为空。

我如何解决这个问题?

共有1个答案

洪哲彦
2023-03-14

SelectedItem对象必须位于ItemsSource集合中。

如果要从新的ItemsSource集合中分配一个与以前的SelectedItem的属性相匹配的新SelectedItem,请在更改ItemsSource之前保存属性值,并查找匹配的项。

var id = ((MyType)MyCombo.SelectedItem).Id;

MyCombo.ItemsSource = MyNewList;

MyCombo.SelectedItem = MyNewList.FirstOrDefault(x => x.Id == id);
 类似资料:
  • 我很难理解WPF中的依赖属性,可能是因为我要找的用例非常具体,没有很好的文档化。 我有一个自定义控件,看起来像这样(请忽略所有可怕的代码,这是暂时的!): 我这样称呼它在我的主窗口内: 我只想在主窗口中的自定义控件调用中说: (其中fillPercent是另一个脚本中不需要担心的内容)。该控件将被展开,因此需要保持为自定义控件。我明白我可能需要依赖属性,但在尝试了许多不同的方法后,我无法弄清楚如何

  • 问题内容: 构建我的Jenkins / MSBuild解决方案会给我这个错误 有任何想法吗? 编辑 我的.csproj文件中有这个 问题答案: 在文本编辑器中打开csproj,看看是否有一个属性组部分,应如下所示: 您是否有“最新”构建配置?如果没有,则将以上部分添加到csproj中。

  • 本文向大家介绍wpf 只读依赖项属性,包括了wpf 只读依赖项属性的使用技巧和注意事项,需要的朋友参考一下 示例 何时使用 只读的依赖项属性与普通的依赖项属性相似,但其结构不允许从控件外部设置其值。如果您拥有仅供消费者参考的属性,则此方法很好用,例如IsMouseOver或IsKeyboardFocusWithin。 如何定义 与标准依赖项属性一样,只读依赖项属性必须在从派生的类上定义Depend

  • 本文向大家介绍wpf 标准依赖项属性,包括了wpf 标准依赖项属性的使用技巧和注意事项,需要的朋友参考一下 示例 何时使用 几乎所有的WPF控件都大量使用依赖属性。依赖项属性允许使用许多仅标准CLR属性无法使用的WPF功能,包括但不限于对样式、动画、数据绑定、值继承和更改通知的支持。 TextBox.Text属性是需要标准依赖项属性的简单示例。在这里,如果Text是标准的CLR属性,则无法进行数据

  • 我在后台有< code>ViewModel(实现< code > INotifyPropertyChanged )和类< code>Category,它只有一个< code>string类型的属性。我的ComboBox SelectedItem绑定到类别的实例。当我更改instance的值时,SelectedItem没有更新,Combobox也没有更改。 编辑:代码 组合框: 物业: 我尝试的是:

  • 本文向大家介绍wpf 附加的依赖项属性,包括了wpf 附加的依赖项属性的使用技巧和注意事项,需要的朋友参考一下 示例 何时使用 附加属性是一种依赖项属性,可以将其应用于任何属性,DependencyObject以增强了解该属性存在的各种控件或服务的行为。 附加属性的一些用例包括: 有一个父元素遍历其子元素并以某种方式作用于子元素。例如,Grid控制使用Grid.Row,Grid.Column,Gr