0

**そのような質問に対する回答がある場合は、お知らせください。削除します。見つからなかった、または適切なキーワードを使用していない可能性があります。URLを教えていただければ削除させていただきます。

編集:デバッグ中に私はこれに気づきました:

insertCommand = フィールド 'insertCommand' の値を取得できません。これを含むクラスに関する情報が利用できないためです。

ViewModel のメソッドにボタンをバインドする非常に単純な MVVM プロジェクトを作成しています。

ViewModel でコマンド オブジェクトを次のように作成しました。

private ICommamand InsertCommand;

それで

    public ICommand insertCommand
    {
        get
        {
            if (this.insertCommand == null)
                this.insertCommand = new RelayCommand(() => this.AddStudent(), () => this.CanAddStudent());

            return this.insertCommand;
        }
    }

また、メンターとして

    private void AddStudent()
    {
        //do something here

    }

もちろん、デフォルトでは CanAddStudent は true を返し、私が持っているビューでも

 <Button x:Name="btnShow" Content="Show" Command="{Binding InsertCommand}" ....

それでも発動しない。私は何が欠けていますか?

ありがとう。

4

3 に答える 3

2

問題は、公開したパブリックプロパティの名前が「insertCommand」であり、プライベートにした「InsertCommand」にバインドしていることです。

バインディングをに変更します<Button x:Name="btnShow" Content="Show" Command="{Binding insertCommand}" />

于 2013-02-18T23:53:07.697 に答える
1

Commandwin8RTではそのままでは機能しません。あなたは行動を経験しなければなりません。

たとえば、このすべてがここで非常によく説明されています。

さらに複雑な回答が必要な場合は、このSO投稿を参照することもできます。

于 2013-02-18T22:56:28.247 に答える
0

問題は、私が作成した ViewModel コンストラクターにありました。適切に初期化されておらず、アクセスできない値をコンストラクターに渡していました。

コードのデバッグ中に Add Watches をいくつか配置した後、次のメッセージに気付きました。

insertCommand = フィールド 'insertCommand' の値を取得できません。これを含むクラスに関する情報が利用できないためです。

xaml のデバッグに snoop を推奨してくれた nzic に感謝します。

ありがとう。

于 2013-02-19T01:37:56.360 に答える