0

私は物事をしようとしています。ネットの方法とxamlの良い市民のような私のコンテキストメニューのための私のメニュー項目を宣言:) :)コンテキストメニューでMenuItemの可視性を適切に設定するには?

私はItemsSourceに基づいてリスト項目の束を含むリストボックスを持っています。

質問:ページクラスで定義する関数に基づいて特定のメニュー項目の表示を動的に設定するにはどうすればよいですか?

私はこれをDataContextクラスのプロパティにバインドすることができますが、本当に知ってはいけないことがいくつかありますので、きれいにしておきたいと思います。

可視性をページクラスの関数に何らかの形でバインドしてデータコンテキストに渡し、適切な可視性の値を返すことはできますか?それとも別の方法がありますか?

ありがとうございます! ブタ

+0

これは、あなたのmenuitemでICommandを使い、datacontextを渡して実行できるかどうかをCanExecuteに判断させたいと思っています。 – invalidusername

答えて

1

バインディングは、バインドされた値が変更されるたびに更新されるため、便利です。関数は更新されないため、関数にバインドできたとしても、UIは決して変更されません。 UIは、バインドされた関数をいつ呼び出すのかも決して知らないでしょう。

なぜ、ブールDataPropertyにバインドしてから、この関数を使用してブールを更新してください。あなたがしようとしていることの詳細を説明すれば、私はあなたにもっと詳細な解決策を与えることができます。

+0

メニュー項目が表示される基準の1つは、ユーザーがサインインされていることです。データクラスは現在このことについては知らないため、これについて知る必要はありません。たぶん私はデータのコンテキストを実装し、この情報でそれを補う別のクラスで私のデータクラスをラップする必要がありますか?おそらくそれを派生させる? – swinefeaster

+0

残りの基準は何ですか?どのくらいの頻度で変更されますか? [サンプルSilverlightアプリケーション](http://dl.dropbox.com/u/26625851/SampleApp.zip)を見てください。別の質問をしました。これは、テキストブロックの可視性を決定する複数のboolバインディングを持っています。 WP7アプリではありませんが、移植するのは難しいことではありません。 –

+0

私がやったことは、純粋な.net-agnosticデータクラスをラップしたViewDataクラスを作成し、メニュー項目の可視性のロジックを実装しました。ありがとう! – swinefeaster

関連する問題