私はこの作業を簡単に行う方法を見つけました。 xamlのメニュー項目のヘッダーテキストプロパティを、フラグが設定されている場合は、Unicodeチェックマーク文字(0x2714)を追加する文字列プロパティにバインドしました。
<toolkit:MenuItem
Header="{Binding InvertedCommandHeader}"
Click="onCommandInvert"
/>
私はそうのように私のデータコンテキストオブジェクトで依存関係プロパティを定義した:メニュー項目が選択されている場合
public const string InvertedPropertyTag = "Inverted";
public static readonly DependencyProperty InvertedProperty =
DependencyProperty.Register(
InvertedPropertyTag,
typeof(bool),
typeof(MyData),
new PropertyMetadata(false));
public bool Inverted
{
get
{
return (bool)GetValue(InvertedProperty);
}
set
{
SetValue(InvertedProperty, value);
InvertedCommandHeader = value ?
Strings.IDST_MENUITEM_INVERTED + " \u2714" :
Strings.IDST_MENUITEM_INVERTED;
}
}
public const string InvertedCommandHeaderPropertyTag = "InvertedCommandHeader";
public static readonly DependencyProperty InvertedCommandHeaderProperty =
DependencyProperty.Register(
InvertedCommandHeaderPropertyTag,
typeof(string),
typeof(MyData),
new PropertyMetadata(
Strings.IDST_MENUITEM_INVERTED));
public string InvertedCommandHeader
{
get
{
return (string)GetValue(InvertedCommandHeaderProperty);
}
set
{
SetValue(InvertedCommandHeaderProperty, value);
}
}
、私はチェックマークプロパティを切り替えます。