【发布时间】:2020-03-19 23:40:55
【问题描述】:
我有问题。我基于以下类创建了一个包含表的数据库:
public class Device
{
public int Id { get; set; }
public string Name { get; set; }
public string Type { get; set; }
}
在我的 App.xaml.cs 中,我执行以下操作:
static List<Device> knownDeviceList;
public App()
{
InitializeComponent();
MyHandler();
MainPage = new NavigationPage(new Page1());
}
public Task MyHandler()
{
return GetKnownDevices();
}
private async Task Get()
{
KnownDeviceList = deviceDatabaseController.GetDevice();
}
public static List<KnownDevice> KnownDeviceList
{
get
{
if (knownDeviceList == null)
{
knownDeviceList = new List<KnownDevice>();
}
return knownDeviceList;
}
set
{
knownDeviceList = value;
}
}
该代码自动运行后,我有一个填充的KnownDeviceList。
现在在 Page1 中,我创建了一个带有 ViewModel 的 ListView,它使用绑定显示来自 KnownDeviceList 的设备。在同一页面上,我制作了一个添加新设备的按钮,因此它使用NavigationPage 将您带到第2 页。但是当我将新设备写入数据库时,我使用:Navigation.PopToRootAsync(); 返回,但现在我希望 ListView 刷新并 KnownDeviceList 再次从数据库中获取设备,所以我的新设备在 ListView 中。
我怎样才能做到这一点,因为我添加后不知道该怎么做!?
【问题讨论】:
-
使用MessagingCenter从Page2发送消息到Page1,告诉它刷新设备列表
-
你最好使用
ObservableCollection而不是List,它实现了接口INotifyPropertyChanged。 -
请添加您的按钮点击查询。还有你在哪里初始化列表?
标签: c# xamarin xamarin.forms xamarin.android xamarin.ios