現在、動的に作成されたコンテキストメニューを作成しようとしています。コンテキストメニューのItemsSource
プロパティには現在ObservableCollection<MenuItem>
がバインドされています。私は今、私が選択したものに応じてメニューが開いたときに、リスト内の項目の可視性を設定したいと思っています。
私はこのメニューのプロパティを開くメニュー項目
public class CtContextMenuItem : MenuItem
{
public delegate Visibility VisibilityDelegate();
public VisibilityDelegate IsVisibleDelegate = null;
}
ようMenuItem
から継承しようと、私は、コンテキストメニューが開かれたときVisibilityDelegate
の結果にVisibility
を設定したいが、私はMenuItem
に呼び出されたすべてのイベントや方法を見つけることができませんコンテキストメニューが開かれたとき
これを行う方法はありますか、それともContextMenuOpening
を聞いている関数の中にメニューのすべての項目を作成するだけですか?
* "のContextMenuOpeningに耳を傾け、" * - はい。メニューアイテムを列挙し、そのデリゲートを直接またはプロパティ(データテンプレートバインディングが使用されている場合)を介して呼び出します。カスタムコントロールを使用する代わりに[mvvm](https://stackoverflow.com/q/15566824/1997232)を少し追加することを検討してください。 – Sinatr