Не работает фильтр коллекции в Spinner. C# xamarin

371
10 июля 2017, 15:00

Суть данной части приложения: Есть два спиннера. Первый спиннер показывает тип продукта (например овощи, фрукты) и при его выборе другой список сужается до тех вариантов, которые выбраны в первом спиннере. Проект в Visual Studio на шарпе в Xamarin.

    class ProductCollection
{
    int _selectedTypes;
    public  List<Product> GetProduct(int selectedTypes)
    {
        _selectedTypes = selectedTypes;
        List<Product> products = new List<Product>();
        Product product;
        if (_selectedTypes==1)
        {
            product = new Product();
            product.Name = "Banana";
            product.Id =1;
            products.Add(product);
            product = new Product();
            product.Name = "Apple";
            product.Id =2;
            products.Add(product);
        } else 
        {   product = new Product();
            product.Name = "Onion";
            product.Id =10;
            products.Add(product);
        }
            return products;
}}

Код из MainActivity:

public class MainActivity : Activity
    {      List<Product> products;
           List<ProductType> producttypes;
           public int selectedTypes{ get; set; }
           ProductCollection productCollection = new ProductCollection();
           protected override void OnCreate(Bundle bundle)
            {
                base.OnCreate(bundle);
                SetContentView (Resource.Layout.Main);
                products = productCollection.GetProduct(selectedTypes);
                adapter = new CustomAdapter(this, products);
                adapter1 = new CustomAdapter(this, producttypes);     
            }
 private void SpTypes_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
    {
        selectedTypes = producttypes[e.Position].Id;
    }
 private void SpProducts_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
       {
           textview11.SetText(products[e.Position].Name, TextView.BufferType.Normal);}

(Привязку XAML и обьявления адатеров пропустил так как не относится к этой ситуации)

Должно работать так, что требуемое свойство для метода GetProduct присваивается через конструктор из первого спиннера и фильтрует список выводимый во втором спиннере. На самом деле свойству selectedTypes ничего не присваисвается, оно остается нулевым и на вывод идет только блок "else". Где ошибка и как правильно сделать этот импровизованный фильтр? Или есть другие варианты?

Спасибо

P.S. Пробовал объявить коллекцию и второй спиннер в событии ItemSelected второго спиннера (чтобы обновлялась коллекция), но тоже не работало

READ ALSO
Выполнить строку как участок кода в C#

Выполнить строку как участок кода в C#

Имеется одномерный массив типа decimal

540
Unity3D &amp; C# - Какую часть языка нужно знать?

Unity3D & C# - Какую часть языка нужно знать?

Доброго времени суток друзьяЯ в данный момент изучаю C#, но в дальнейшем планирую заниматься 2Д играми на Unity3D

340
Не удается получить доступ к сайту

Не удается получить доступ к сайту

Всем добрый деньОчень прошу о вашей помощи

423
Для чего мне использовать ASP.NET Core? [требует правки]

Для чего мне использовать ASP.NET Core? [требует правки]

Здравствуйте! Расскажу я немного о себе и про мою ситуацию: Я бекенд разработчикПишу на PHP и Node

405