Почему моя простая привязка данных не работает? - PullRequest
0 голосов
/ 29 марта 2020

Не могу понять, почему это простое связывание данных вообще не работает.

Сначала я попробовал его с элементами комбинированного окна (выбора), и хотя список строк «Categories_names» заполняется значениями в коде позади, они не отображаются в представлении.

Затем я попробовал простой текст на ярлыке, который тоже не работал.

Файл XAML:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="budget.Pages.CreateItemBase"
             BindingContext="budget.Pages.CreateItemBase">
    <ContentPage.Content>
        <StackLayout>
            <Label 
                Text="{Binding Thing}"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" 
                />

            <Picker
                x:Name ="IB_Category"
                ItemsSource="{Binding categories_names}"

                Title="Select a Category"

                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand"
                />

        </StackLayout>
    </ContentPage.Content>
</ContentPage> 

Код:

public partial class CreateItemBase : ContentPage
    {
        private List<Category> Categories;
        private string thing;

        public string Thing
        {
            get { return thing; }
            set { thing = value; }
        }


        public IList<string> categories_names
        {
            get { return Categories.Select(x => x.Name).ToList(); }
            set { Categories = new List<Category>(); }
        }


        public CreateItemBase ()
        {
            InitializeComponent ();
            var z = BindingContext; // To check if the BindingContext is right during debug

            Thing = "whatever";

            SQLiteConnection DBCon = new SQLiteConnection(App.DBLocation);
            DBCon.CreateTable<Category>(); // Creates the table if it doesn't exist yet

            Categories = DBCon.Table<Category>().ToList();

            DBCon.Close();
        }
    }

Есть идеи, что может быть не так? Очень ценится.

...