在 Prism 中另一个 属性 发生变化时更新一个 属性

Update a property when another property changes in Prism

我的视图模型中有类似的东西

        public ObservableCollection<string> UnitSystems { get; set; }
        private string selectedUnitSystem;
        public string SelectedUnitSystem
        {
            get { return selectedUnitSystem; }
            set { SetProperty(ref selectedUnitSystem, value); }
        }

        private string _property1Unit;
        public string Property1Unit
        {
            get { return _property1Unit; }
            set { SetProperty(ref _property1Unit, value); }
        }

在我看来,它们绑定到组合框和标签。当然,当我在组合框中 select 其他内容时,我想更新 Property1Unit 的值和标签的内容。可能吗?

是的,这是可能的。您可以在设置的值之后传入要执行的任何操作。下面的示例显示了一个情况,其中您有一个值连接 FirstName 和 LastName 的两个字符串。这只会在 属性 更改时执行,因此如果值为 Dan 并且新值为 Dan 它不会执行,因为它不会首先引发 PropertyChanged。

public class ViewAViewModel : BindableBase
{
    private string _firstName;
    public string FirstName
    {
        get => _firstName;
        set => SetProperty(ref _firstName, value, () => RaisePropertyChanged(nameof(FullName));
    }
    private string _lastName;
    public string LastName
    {
        get => _lastName;
        set => SetProperty(ref _lastName, value, () => RaisePropertyChanged(nameof(FullName));
    }

    public string FullName => $"{FirstName} {LastName}";
}