【发布时间】:2019-10-17 10:28:15
【问题描述】:
我是 Xamarin 世界及其数据绑定规则的新手。我有带有可观察的 CurrentOrder 属性的 ViewModel,以及 3 个值依赖于它的属性。所有 4 个属性都在带有绑定的 View 中使用,因此 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;
非常感谢您对此处最佳实践的任何建议
【问题讨论】:
-
我们总是像你一样在系列中这样做。这是良好的做法。
标签: xaml xamarin xamarin.forms