Xaml 在Xamarin视图中寻找实现绑定的多属性依赖关系的正确方法

Xaml 在Xamarin视图中寻找实现绑定的多属性依赖关系的正确方法,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,我不熟悉Xamarin world及其数据绑定规则。我有一个ViewModel,它具有observableCurrentOrder属性和3个属性,这些属性的值依赖于它。所有4个属性都与绑定一起在视图中使用,因此CurrentOrder中的每个更改都应将更改传播到其他3个属性,并影响视图显示其控件和数据的方式。我对如何将CurrentOrder更改的信号传播到其他3个相关属性感到困惑。我提出了实际可行的代码,但对我来说,它看起来有点笨拙,并在独立属性CurrentOrder中设置了依赖项,而我更希

我不熟悉Xamarin world及其数据绑定规则。我有一个ViewModel,它具有observable
CurrentOrder
属性和3个属性,这些属性的值依赖于它。所有4个属性都与绑定一起在视图中使用,因此
CurrentOrder
中的每个更改都应将更改传播到其他3个属性,并影响视图显示其控件和数据的方式。我对如何将
CurrentOrder
更改的信号传播到其他3个相关属性感到困惑。我提出了实际可行的代码,但对我来说,它看起来有点笨拙,并在独立属性
CurrentOrder
中设置了依赖项,而我更希望它是另一种方式:依赖属性应该更好地知道它们所依赖的属性

请注意,SetProperty和OnPropertyChanged方法位于基本视图模型中,由标准VS Xamarin.Forms项目模式生成

    private int _currentOrder = 1;
    public int CurrentOrder
    {
        get => _currentOrder;
        set => SetProperty(ref _currentOrder, value, onChanged: () =>
            {
                OnPropertyChanged(nameof(CurrentItem));
                OnPropertyChanged(nameof(IsTheLastItem));
                OnPropertyChanged(nameof(IsTheFirstItem));
            });

    }

    public string CurrentItem => Items[CurrentOrder - 1];

    public bool IsTheLastItem => CurrentOrder == Items.Count;

    public bool IsTheFirstItem => CurrentOrder == 1;
非常感谢您对这里的最佳实践提出的任何建议

我会将其用于此类从属属性

只需添加nuget,别忘了添加FodyWeavers.xml,您的类将如下所示

公共类视图模型:INotifyPropertyChanged
{
公共事件属性更改事件处理程序属性更改;
公共int CurrentOrder{get;set;}
公共字符串CurrentItem=>Items[CurrentOrder-1];
public bool IsTheLastItem=>CurrentOrder==Items.Count;
公共布尔值为第一项=>CurrentOrder==1;
}

我们总是像你一样在场景中这样做。这是良好的实践,它确实有效。谢谢仅针对其他人信息:默认情况下,它会将所有属性中的更改通知所有属性,但通过属性,您可以定义哪些属性取决于哪些属性,代码保持整洁