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基本的に、モデルからデバイス情報を取得するだけです。これは、アプリケーションのロード時に 1 回実行されますが、更新ボタンのクリック イベントでも実行したいと考えています。MainPage のコード ビハインドでこれをどのように達成できますか? また、これは正しいアプローチですか?そうでない場合、この解決策を達成するにはどうすればよいですか?

4

1 に答える 1

2

ビュー モデルへのバインディングは、更新することがわかっていない限り更新されません。これを行う一般的な方法は、ビュー モデルに実装し、ビュー モデルのプロパティが変更されたときにINotifyPropertyChanged呼び出すことです。NotifyPropertyChangedあなたの場合、更新ボタンのすべてのプロパティに対してメソッドを実装INotifyPropertyChangedしてから呼び出すことができます。NotifyPropertyChanged

于 2012-10-18T03:41:26.403 に答える