XAML で定義された ContextMenu があり、コードでそれを変更します。
ContextMenu EditContextMenu;
EditContextMenu = (ContextMenu)this.FindResource("EditContextMenu");
//Modify it here...
ContextMenu
次に、データ バインディングを使用して、XAML テーマ ファイル内のすべての TextBoxes、DatePickers などに設定する必要があります。メインウィンドウにプロパティを追加しようとしました:
public ContextMenu sosEditContextMenu
{
get
{
return EditContextMenu;
}
}
...そして次のようにバインドします(以下は、プロパティが定義されているメインウィンドウの ' FTWin
' のテーマファイルからのものです):Name
sosEditContextMenu
<Style TargetType="{x:Type TextBox}">
<Setter Property="ContextMenu" Value="{Binding Source=FTWin, Path=sosEditContextMenu}"/>
</Style>
...しかし、うまくいきません。さまざまなことを試しましたが、リソースが見つからないという例外が発生したか、何も起こりませんでした。
私がやろうとしていることは可能ですか? はいの場合、何が間違っていますか? オブジェクトの DataContext を設定することが役立つかどうかはわかりませんが、コードですべての TextBoxes に設定するのはあまり良くありませんか?