为什么我必须在Xamarin代码中的所有属性中使用SetProperty



我是Xamarin的新手。我正在开发一个现有的代码库,里面有很多页面和视图模型。Xamarin中的一个标准似乎是,视图模型中的每个公共属性都有一个私有变量,并且总是在setter中调用SetProperty。像这样:

private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set { SetProperty(ref _myProperty, value); }
}

SetProperty做什么?我需要对每一处房产都这样做吗,还是只对一些房产这样做?如果我只使用一个带有默认getter和setter的简单属性,会发生什么?像这样:

public string MyProperty { get; set; }

我的猜测是,它与XAML文件的绑定有关,如果您希望在更改这些属性时更新视图,那么它是必要的。但我在任何地方都没有看到这种解释。

您不必使用它。但这种机制INotifyPropertyChanged是驱动Xamarin Forms(和其他Microsoft UI堆栈(使用的数据绑定机制的原因。SetProperty基本上会引发一个事件,通知UI某个属性已更改,如果UI正在显示该属性,则需要刷新。

注意这个

public string MyProperty;

NOTC#属性。这只是一个field。CCD_ 4需要CCD_ 5和/或CCD_。仅限的数据绑定适用于公共属性

谷歌INotifyPropertyChanged提供了许多关于该界面如何工作以及如何最好地实现它的大量文章

有一个很棒的nuget包,Fody PropertyChanged,它将自动化使用INPC时涉及的大部分样板代码。它适用于Xamarin Forms。

相关内容

  • 没有找到相关文章

最新更新