ここで少し問題に直面しています。コードは正常ですが、アプリケーションはWebAPIデータベースに挿入している正しいリストをバインドしていません。私は達成するために何を期待C#ListViewアプリケーションでJSON rest APIを使用してWeb APIを参照 - 空白を返します。
:クロスプラットフォームで
リストビュー、この場合には、私は次のようにWebAPIのコード内のすべてのデータを一覧表示している、アンドロイドでテストしている:ここで
は、JSONですここではWebAPIの
[{"Id":1,"BusinessName":"La ventana","BusinessFantasyName":"La Ventana","BusinessArea":"Restaurante","BusinessSpecificArea":"Pizzaria","Country":"Brasil","State":"RS","City":"Rio Grande","Adress":"Av Rio Grande","Neighbourhood":"Cassino","Number":"134","Complement":"Casa","Latitude":-32.1853837,"Longitude":-52.1582284,"DateOfReg":"26/12/2017","DateOfMod":"26/12/2017","BusinessStatus":"Ativo","RegisteredBy":"Daniel Serrão"},{"Id":2,"BusinessName":"Supermercado Granabara - Cassino","BusinessFantasyName":"Supermercado Granabara - Cassino","BusinessArea":"Supermercados","BusinessSpecificArea":"Bens e Consumo","Country":"Brasil","State":"RS","City":"Rio Grande","Adress":"Av Rio Grande","Neighbourhood":"Cassino","Number":"150","Complement":"NA","Latitude":-32.1845922,"Longitude":-52.1591549,"DateOfReg":"26/12/2017","DateOfMod":"26/12/2017","BusinessStatus":"Ativo","RegisteredBy":"Daniel Serrão"}]
に上場しているファイルのコードは、このWEBAPIを相談するために、次のとおりです。
namespace Icquire.RestClient
{ public class RestClient<T>
{
private const string WebServiceUrl = "http://localhost:58173/api/BusinessRegs/";
public async Task<List<T>> GetAsync()
{
var httpClient = new HttpClient();
var json = await httpClient.GetStringAsync(string.Format(WebServiceUrl));
var BusinessReg = JsonConvert.DeserializeObject<List<T>>(json);
return BusinessReg;
}
public async Task<bool> PostAsync(T t)
{
var httpClient = new HttpClient();
var json = JsonConvert.SerializeObject(t);
HttpContent httpContent = new StringContent(json);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var result = await httpClient.PostAsync(WebServiceUrl, httpContent);
return result.IsSuccessStatusCode;
}
public async Task<bool> PutAsync(int Id, T t)
{
var httpClient = new HttpClient();
var json = JsonConvert.SerializeObject(t);
HttpContent httpContent = new StringContent(json);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var result = await httpClient.PostAsync(WebServiceUrl + Id, httpContent);
return result.IsSuccessStatusCode;
}
public async Task<bool> DeleteAsync(int Id, T t)
{
var httpClient = new HttpClient();
var response = await httpClient.DeleteAsync(WebServiceUrl + Id);
return response.IsSuccessStatusCode;
}
}}
ここで
namespace Icquire.Services
{ public class BusinessRegServices
{ public async Task<List<BusinessReg>> GetBusinessRegAsync()
{
RestClient<BusinessReg> restClient = new RestClient<BusinessReg>();
var BusinessRegList = await restClient.GetAsync();
return BusinessRegList;
}
}
}
データを表示するためのコードです:
namespace Icquire.ViewModel
{ public class BusinessRegView : INotifyPropertyChanged
{
private List<BusinessReg> _BusinessRegList
{
get { return _BusinessRegList; }
set
{
_BusinessRegList = value;
OnPropertyChanged();
}
}
public List<BusinessReg> BusinessRegList { get; set; }
public BusinessRegView()
{
InitializeDataAsync();
}
private async Task InitializeDataAsync()
{
var businessRegServices = new BusinessRegServices();
BusinessRegList = await businessRegServices.GetBusinessRegAsync();
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
};
}
そして、ここでの私であるここ
は内部サービスのためのコードですcontentPage内のListView:
<ListView ItemsSource="{Binding BusinessRegList}" HasUnevenRows="True" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation ="Vertical">
<Label TextColor="Silver" Text="{Binding BusinessName}"/>
<Label TextColor="Silver" Text="{Binding Adress}"/>
<Label TextColor="Silver" Text="{Binding Number}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
上記のコードでは、ListViewのバインディングが空白に戻ります。 Jsonがcorretly生成しているので、私は問題がJsonファイルへのConsultingにあると思う。またはサービスコードの内部。誰かがヒントを持っていますか?
ありがとうございます。 ダニエル。
不運にも機能しませんでした。 変更後もAppが実行されませんでした。 –