【发布时间】:2020-01-20 07:38:42
【问题描述】:
鉴于以下 ViewModel 代码 - cmbxFields 绑定到 ComboBox ItemSource,SelectedcmbxField 绑定到所选项目 - ComboBox 所选项目不会更新,直到我导航离开并返回视图 (Page )。在 MVVM 中执行此操作以立即更新 ComboBox 的正确方法是什么?
public ObservableCollection<string> cmbxFields { get; set; } = new ObservableCollection<string>();
public string SelectedCmbxField { get; set; }
private async Task LoadWorkspaceFields()
{
cmbxFields.Clear();
foreach (var curField in availableFields.OrderBy(x =>x.Name).Select(x => x.Name))
{
cmbxFields.Add(curField);
}
SelectedCmbxField = cmbxFields.FirstOrDefault(x => x.StartsWith("Some Text"));
}
我在 ComboBox XAML 上尝试了以下操作-
SelectedItem="{Binding SelectedcmbxField, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
【问题讨论】:
-
包含该属性的类应该实现
INotifyPropertyChanged -
你应该找到你的解决方案here
-
@Stefan 应该,是的,但是你也可以在特定的属性设置器中直接引用
OnChanged