Xamarin ListView не является обязательным

#c# #xamarin #xamarin.forms

#c# #xamarin #xamarin.forms

Вопрос:

Я только начинаю изучать xamarin и знаю, что должен перейти на подход MVVM, но перед этим я хочу попробовать код, лежащий в основе привязки, но он не работает. Я вижу, что в мобильном приложении есть 2 строки, но я не вижу значения привязки. Почему?

TestListView.xaml

 <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="XamarinTabbed.Views.TestListView">
    <ContentPage.Content>
        <StackLayout>
            <ListView x:Name="MyLV">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout Padding="10">
                                <Label Text="{Binding Name}" TextColor="Black"  />
                                <Label Text="{Binding Status}" TextColor="AliceBlue"  />
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>
  

TestListView.xaml.cs

 [XamlCompilation(XamlCompilationOptions.Compile)]
public partial class TestListView : ContentPage
{
    public TestListView ()
    {
        InitializeComponent ();
        MyLV.ItemsSource = new ObservableCollection<Employee> {
            new Employee { Name = "t1", Status = "tt" },
            new Employee { Name = "t2", Status = "t2" }
        };
    }

    public class Employee {
        public string Name;
        public string Status;
    }
}
  

Комментарии:

1. Name и Status в вашем Employee классе должны быть свойства , а не поля для привязки к работе.

Ответ №1:

Ваш класс должен выглядеть следующим образом. Как @jsanalytics упоминалось в комментарии. Имя и статус должны быть свойствами, а не полями.

     public class Employee
    {
        public string Name { get; set; }
        public string Status { get; set; }
    }