无法让 PropertyChanged.Fody 在 Xamarin.Forms 应用程序中工作

Unable to get PropertyChanged.Fody to work in Xamarin.Forms App

我正在尝试在我的 Xamarin.Forms 应用程序中实施 PropertyChanged.Fody。我关注了这个博客 post:

https://xamgirl.com/validation-snippets-in-xamarin-forms/

并使用以下 git 项目作为参考:

https://github.com/CrossGeeks/ValidationXFSample.

按下提交按钮后,我就可以进行验证。但是,更新字段时不会触发验证。我也无法让示例项目运行。它会在提交时正确显示验证,但不会在字段更新时显示。

我在 Mac 和 iOS 模拟器 14.3 上使用最新的 Visual Studio。否则,我使用示例项目的默认值。

我有另一个类似的解决方法。 这是我的 nuget 配置

这是我的 BaseViewModel

解释:

  1. 只需将 ReactiveAttribute 添加到 属性 你想要的

    [Reactive] public bool IsLoading { get; set; }

  2. 如果你想在值改变时处理,只需添加具有这种格式的新方法 On<Property_Name>Changed 更改为你想要的 属性 名称像 OnIsLoadingChanged()

    一样处理
  3. 确保您的 BaseViewModel 实施 INotifyPropertyChanged

  4. 此方法依赖于 ReactiveUI,但不会使用 ReactiveUI 的所有功能。您可以自由地使用另一个 MVVM 框架或只使用纯 Xamarin.Forms

  5. 这种方法使用 PropertyChanged.Fody 的强大功能和 ReactiveUI.Fody 语法的简单性来声明 属性 已更改

  6. 您只需将这些库添加到您的共享项目中,在特定平台上无需执行任何操作

我可以像

一样绑定IsLoading
<ListView
    IsPullToRefreshEnabled="True"
    IsRefreshing="{Binding IsLoading}">
</ListView>

如果您希望以后的生活更轻松,请使用 xamarin 社区工具包中的 pre-built validation behaviors(包含开发人员使用的很多 repetitive/common 内容)。电子邮件验证、最大字符数验证、自定义验证……以及更多开箱即用的功能。关于何时验证你可以设置 Flags="ValidateOnValueChanging".