我在MainPage中实现了一个刷新应用程序栏按钮,我想使用此按钮的click事件重新加载视图模型。但是,我不知道如何实现这一目标。首次加载视图时,将在xaml中调用视图模型,如下所示:
DataContext="{Binding InformationProvider, Source={StaticResource DeviceInformationViewModel}}"
我的视图模型是
public class DeviceInformationViewModel
{
private static IInformationProvider informationProvider;
/// <summary>
/// Returns the device information to display.
/// </summary>
public IInformationProvider InformationProvider
{
get
{
if (informationProvider == null)
{
if (DesignerProperties.IsInDesignTool)
{
informationProvider = new FakeInformation();
}
else
{
informationProvider = new RealInformation();
}
}
return informationProvider;
}
}
}
InformationProvider
基本上只是从模型中获取设备信息。加载应用程序时会执行一次,但我也想在刷新按钮单击事件上执行此操作。我怎么能在我的MainPage背后的代码中完成这个?另外,这是正确的方法吗?如果没有,我将如何完成此解决方案?
答案 0 :(得分:2)
除非知道这样做,否则对视图模型的绑定不会更新。这样做的典型方法是在视图模型上实现INotifyPropertyChanged
,然后在视图模型上的属性发生更改时调用NotifyPropertyChanged
。在您的情况下,您可以简单地实现INotifyPropertyChanged
,然后为刷新按钮中的每个属性调用NotifyPropertyChanged
方法。