В настоящее время я экспериментирую с Xamarin Free и пытаюсь подключиться к моим веб-сервисам (ASP.NET), чтобы заполнить счетчик.Данные привязки от ASP.NET webservice к счетчику в Xamarin
То, что я пытаюсь сделать, это асинхронно вызвать службу, а затем, как только результат будет возвращен, заполните Spinner.
Что происходит, только один элемент привязан - первый элемент в массиве результатов.
Любой совет будет рад!
Код выглядит следующим образом:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using WebServiceTestApplication.ServiceProxy;
namespace WebServiceTestApplication
{
[Activity (Label = "WebServiceTestApplication", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
Tablet_Services proxy;
Spinner spCategories;
ArrayAdapter<string> spCategoriesContent;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
proxy = new ServiceProxy.Tablet_Services();
spCategoriesContent = new ArrayAdapter<string> (this, Android.Resource.Layout.SimpleSpinnerItem);
spCategoriesContent.SetDropDownViewResource (Android.Resource.Layout.SimpleSpinnerDropDownItem);
spCategories = (Spinner)FindViewById (Resource.Id.spCategories);
spCategories.Adapter = spCategoriesContent;
UpdateTreatmentCategories();
}
void PopulateResults (srTreatmentCategory[] result)
{
if (result != null)
{
foreach (srTreatmentCategory c in result)
{
Console.WriteLine ("Adding {0} to spCategoriesContent", c.CategoryName);
spCategoriesContent.Add(c.CategoryName);
}
}
}
public void UpdateTreatmentCategories()
{
proxy.BegingetTreatmentCategories (delegate (IAsyncResult ar) {
var result = proxy.EndgetTreatmentCategories (ar);
PopulateResults (result);
}, null);
}
}
}
Спасибо Val. Я действительно решил проблему, привязывая весь список к ArrayAdapter, а не привязывая элементы по одному - как и в вашем решении. –