【问题标题】:How do I pass a GET function into View/ViewModel? How do I bind data to View (with only C# code)?如何将 GET 函数传递到 View/ViewModel?如何将数据绑定到视图(仅使用 C# 代码)?
【发布时间】:2019-09-08 02:47:14
【问题描述】:

我正在尝试将 Google 的 Blogger API 设置为 Xamarin 表单。 Google 只有 Windows Phone 示例。我只需要重新配置以获取数据并将其绑定到视图。我不确定如何将 GET 函数传递到 ViewModel 并在 View 中绑定响应。

这是获取数据的 Blogger API 代码示例。 Google Blogger API:Repository.cs

这是传递存储库功能的 ViewModel。 Google Blogger API:BlogsViewModel.cs

我的主要问题是:它应该像 XF 视图中的这个 BindingContext 吗?

BindingContext = new BlogsViewModel(new BloggerRepository());

【问题讨论】:

  • 我只是不知道在那个 BlogsViewModel 中传递什么。
  • 这个应该是对的,你试过了吗?
  • 我想知道您是如何获得使用 Xamarin 和 Google .net 客户端库的授权的,您是否愿意发布该代码?
  • 在这种情况下,我还没有达到访问 Google API 的地步。是的。您可以在 Xamarin 应用程序中使用 Google API。某些 Google API 对其 API 有某些授权方式。我在我的应用程序中使用了 Youtube API。请浏览 Google 示例代码。抱歉回复晚了。

标签: c# mvvm xamarin.forms blogger google-api-dotnet-client


【解决方案1】:

我从未使用过 Xamarin,但理想情况下,您应该让视图模型在单独的服务文件中调用 api。将该服务调用的结果存储在实现 INotifyPropertyChanged 的​​视图模型中的属性中,然后将该属性绑定到 xaml。

没有理由使用后面的代码,除非我不知道 Xamarin 表单有什么特殊之处。

【讨论】:

    【解决方案2】:

    使用默认值将数据绑定到视图,并在从 Blogger API 获取数据时更新 ViewModel 中的值。

    传递一个new BloggerRepository() 应该可以工作,你需要做的是创建 具有属性(如名称、ID、标题、内容)并实现INotifyPropertyChanged 接口的模式。从GetBlogsAsync/GetPostsAsync获取数据时,更新ViewModel中的值。

    如何在MVVM中实现数据绑定见文档:data-bindings-to-mvvm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-21
      • 2015-12-31
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      相关资源
      最近更新 更多