繁体   English   中英

如何显示从ASP.NET Web应用程序到Xamarin.Forms的数据?

[英]How to show data from ASP.NET Web Application to Xamarin.Forms?

我希望在ASP.NET Web应用程序中创建的所有记录都可以在我的移动应用程序Xamarin.Forms中显示。 我的程序正在发生的事情是,我能够在Web应用程序中创建记录并将其保存,但无法使其显示在Xamarin.Forms Mobile应用程序中。 我创建了一个MainViewModel,它将从已绑定到MainPage的Web应用程序中获取记录。 这些是我的代码:

MainPageMain.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:XamarinDemoApp"
         x:Class="XamarinDemoApp.MainPageMain"
         xmlns:ViewModels="clr-namespace:XamarinDemoApp.ViewModels;assembly=XamarinDemoApp"
         BackgroundColor="Teal"
         Title=" Title Bar">



 <ContentPage.BindingContext>
     <ViewModels:MainViewModel/>
 </ContentPage.BindingContext>


 <StackLayout Orientation="Vertical">

   <ListView ItemsSource="{Binding EmployeesList}"
          HasUnevenRows="True">
     <ListView.ItemTemplate>
       <DataTemplate>
          <ViewCell>
        <StackLayout Orientation="Horizontal">
          <Label Text="{Binding Name}"
                  FontSize="24"/>
          <Label Text="{Binding Department}"
                  FontSize="24"/>

        </StackLayout>

      </ViewCell>

      </DataTemplate>

     </ListView.ItemTemplate>

    </ListView>

   <Label Text="This is the MainPage"/>

 </StackLayout>

MainViewModel.cs

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using XamarinDemoApp.Models;
using XamarinDemoApp.Services;

namespace XamarinDemoApp.ViewModels
    {
public class MainViewModel : INotifyPropertyChanged
    {
    private List<Employee> _employeesList;

    public List<Employee> EmployeesList
    {
        get { return _employeesList; }
        set
        {
            _employeesList = value;
            OnPropertyChanged();
        }
    }

    public MainViewModel()
    {
      InitializeDataAsync();
    }

    private async Task InitializeDataAsync()
     {
         var employeesServices = new EmployeesServices();
         EmployeesList = await employeesServices.GetEmployeesAsync();
     }


    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));

        }
    }
}

制作一个单独的API控制器,可用于将EmployeeList作为JSON对象调用。 那是做这种事情的首选方法。 例:

public class EmployeeApiController : ApiController
{
   [HttpGet]
   public async Task<List<Employee>> Get()
   {
      return await employeesServices.GetEmployeesAsync();

   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM