2011-12-17 10 views
0

Silverlightを使用している私のwp7アプリケーションでContextMenuの中にいくつかのMenuItemを持っています。特定のシナリオでは、アイテムの1つの横にチェックマークを付ける必要があります。wp7/silverlightのコンテキストメニューの横にチェックマークを付ける方法はありますか?

これを行う方法はありますか?

私がしなければならない場合は、Imageコントロールをその右側に追加することで解決します。私もこれをやってみました

CheckBox box = new CheckBox(); 
menuItem.Items.Add(box); 

はなく、NotImplementedExceptionを得ました。

ありがとうございます!

答えて

0

私はこの作業を簡単に行う方法を見つけました。 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); 
    } 
} 

、私はチェックマークプロパティを切り替えます。

0

コンテキストメニューにリストボックスを追加し、リストボックスにチェックボックスを追加することができます。私は実装していませんが、試してみることができます。

関連する問題