0

我正在尝试在我的 Xamarin.Forms 应用程序中实现 PropertyChanged.Fody。我关注了这篇博文:

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

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

https://github.com/CrossGeeks/ValidationXFSample

一旦我按下提交按钮,我就能让验证工作。但是,更新字段时不会触发验证。我也无法让示例项目工作。它在提交时正确显示验证,但在字段更新时不显示。

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

4

2 回答 2

0

我有另一个类似的工作。这是我的nuget配置

在此处输入图像描述

这是我的 BaseViewModel

在此处输入图像描述

解释:

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

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

  2. 如果您想在值更改时进行处理,只需使用这种格式添加新方法On<Property_Name>Changed更改 <Property_Name> 并使用您要处理的属性名称,例如OnIsLoadingChanged()

  3. 确保你的BaseViewModel工具INotifyPropertyChanged

  4. 这种方法依赖于ReactiveUI但不会使用ReactiveUI. 您可以自由地使用另一个 MVVM 框架或只使用纯Xamarin.Forms

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

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

我可以像绑定IsLoading一样

<ListView
    IsPullToRefreshEnabled="True"
    IsRefreshing="{Binding IsLoading}">
</ListView>
于 2021-01-31T05:22:06.413 回答
0

如果您希望将来让您的生活更轻松,请使用 xamarin 社区工具包包中的预构建验证行为(包含开发人员使用的大量重复/常见内容)。电子邮件验证、最大字符验证、自定义验证……以及更多开箱即用的功能。关于何时验证您可以设置Flags="ValidateOnValueChanging".

于 2021-01-31T07:14:05.000 回答