#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
свойства