Почему привязка ViewModel работает только при отладке и не работает после развертывания и установки на устройстве?

#c# #xamarin.forms #xamarin.android

#c# #xamarin.forms #xamarin.android

Вопрос:

я создаю приложение xamarin forms и использую BindingContext для привязки viewmodel к view … он отлично работает при отладке и Visual studio Android emulator, но когда я развертываю и устанавливаю его на устройстве Android, он не работает и показывает пустую табличку

Это MainPage.xaml.cs:

 public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        var model = new GoodViewModel();
        BindingContext = model;
    }
}
  

Это MainPage.xaml :

 <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:Good"
             x:Class="QuranProTst.MainPage">

    <StackLayout>
        <Label Text="{Binding Good.Title}" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" 
           TextColor="BlueViolet"
               />
    </StackLayout>

</ContentPage>
  

Это GoodViewModel :

 private readonly DataContext _db;
public GoodViewModel()
{
    _db = new DataContext();
    Good = _db.Goods.First(g => g.Id == 1);
    Goods = _db.Goods.ToList();
}

public List<Good> Goods { get; set; }
public Good Good { get; set; }
  

Это DataContext :

 public class DataContext
    {
        public DataContext()
        {
            FillData();
        }
        public IList<Good> Goods { get; set; }  

        public void FillData()
        {
            var goodlist = new List<Good>();
            for (int i = 0; i < 5; i  )
            {
                var good = new Good
                {
                    Id = i,
                    Title = $"GoodNumber{i}",
                    Price = i   100

                };

                goodlist.Add(good);
            }

            Goods = goodlist;
        }
    }
  

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

1. откуда поступают данные? Вы уверены, что данные правильно загружаются на устройство?

2. ДА.. DataContext — это предопределенный список хорошего класса

3. Реализовала ли ваша Good модель INotifyPropertyChanged интерфейс? Если код одинаков при отладке на симуляторе и реальном устройстве. Вероятно, причиной являются данные.

4. GoodViewModel Необходимо реализовать INotifyPropertyChanged , если вы хотите, чтобы представление обновлялось правильно при настройке Good свойства