2

我在我的 MainPage 中实现了一个刷新应用程序栏按钮,我想使用此按钮的单击事件来重新加载视图模型。但是,我不确定如何做到这一点。当我的视图首次加载时,视图模型在 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 后面的代码中完成此操作?另外,这是正确的方法吗?如果没有,我该如何完成这个解决方案?

4

1 回答 1

2

除非他们知道这样做,否则与您的视图模型的绑定不会更新。执行此操作的典型方法是在您的视图模型上实现,然后在您的视图模型上的属性发生更改时INotifyPropertyChanged调用。NotifyPropertyChanged在您的情况下,您可以简单地实现INotifyPropertyChanged然后NotifyPropertyChanged为刷新按钮中的每个属性调用该方法。

于 2012-10-18T03:41:26.403 回答