在视图模型构造函数中设置时未显示在视图中的选定项
本文关键字:视图 显示 模型 构造函数 设置 | 更新日期: 2023-09-27 18:32:12
在我的 WPF MVVM 应用程序中,我尝试在视图首次加载时显示所选项目。在视图模型的构造函数中设置选定项时,这些项不会在视图中显示为选定项。但是,当用户单击按钮后执行相同的代码时,这些项将显示为选定项。
我的观点,与SelectedCustomVariableGroups
绑定.
<ListBox DockPanel.Dock="Bottom" ItemsSource="{Binding CustomVariableGroups}" DisplayMemberPath="Name"
ff:MultiSelectorBehaviours.SynchronizedSelectedItems="{Binding SelectedCustomVariableGroups}"
SelectionMode="Extended" Height="auto">
</ListBox>
我的视图模型的构造函数,设置所选项:
public CustomVariableGroupSelectorViewModel()
{
Initialize();
var selectedCvg = this.CustomVariableGroups.FirstOrDefault(x => x.Name == "Unit RAF44");
this.SelectedCustomVariableGroups.Add(selectedCvg); // SelectedCustomVariableGroups is an ObservableCollection
}
"选定自定义变量组"的监视窗口显示计数为 1,但视图中未选择所选项。
现在,Cancel() 方法中的相同代码,就像测试一样(用户通过单击启动):
private void Cancel()
{
var selectedCvg = this.CustomVariableGroups.FirstOrDefault(x => x.Name == "Unit RAF44");
this.SelectedCustomVariableGroups.Add(selectedCvg);
}
当我在此方法中的第一个大括号上调试中断时,这个。SelectedCustomVariableGroups.Count 从 1 更改为 0。为什么?我没有看到任何地方我导致这种情况发生。Cancel() 方法完成后,计数再次恢复为 1,现在所选项目在视图中正确显示。
为什么这不起作用?如果我无法在构造函数中设置所选项,如何在视图/视图模型加载时设置所选项?
尝试使用 SelectedItems 绑定设置 Mode 属性 ="TwoWay"