2013-12-11 23 views
5

Bir MVVM Uygulaması var ve bir ContextMenu eklemek istiyorum. IsChecked Ciltleme ContextMenu'da MenuItem içinde çalışma yok

ben XAML ContextMenu eklendi ve sonra bu (önemli değil çünkü burada sadece bir öğe) gibi öğeler ayarlayın: SaveToDbOneChecked ve SaveToDbOneEnabled gibi uygulanmaktadır benim Modeli Mülkler

<MenuItem Header="{x:Static Monitor:MonitorResources.R0206_SaveLatestValueToDatabase}" 
             IsCheckable="true" 
             IsChecked="{Binding ElementName=root, Path=Model.SaveToDbOneChecked}" 
             IsEnabled="{Binding ElementName=root, Path=Model.SaveToDbOneEnabled}"> 

Bu:

private bool mSaveToDbOneEnabled; 

    public bool SaveToDbOneChecked 
    { 
     get { return mSaveToDbOneChecked; } 
     set { mSaveToDbOneChecked = value; OnPropertyChanged("SaveToDbOneChecked"); } 
    } 

Ben ContextMenu önce bu set

GridView'da ContextMenu olduğu içinde SelectionChanged üzerinde çağrılan Ama SaveToDbOneChecked ayarlanmış olmasına rağmen ertesi Menuıtem metninde için Denetlenen işaretini göstermeyecektir. doğru! Nerede yanlış bir şey yaptığımı bilmiyorum ve birilerinin bana burada yardım edebileceğini umuyorum.

+1

Çalıştır debug uygulama ve çıkış penceresinde Cilt Hatalar kontrol edin. –

+0

Evet, bir kaç tane var: 'ElementName = root' referansıyla ciltleme için kaynak bulunamıyor. BindingExpression: Yol = Model.SaveToDbOneChecked; Dataıtem = null; hedef eleman 'MenuItem' (Name = ''); target özelliği 'IsEnabled' (tür 'Boole') Bağlamda sorun nedir? o_O – Kazoooka

cevap

5

Bu işi yapmak için yapmanız gereken birkaç şey. Öncelikle hedef öğeniz genellikle kapsamınızın dışında olduğundan, MenuItem içinden ElementName özelliğini kullanarak bağlanamazsınız.

ben Model yapmanız gereken tüm ContextMenu yerleştirildiği Element DataContext olarak ayarlamak bu durumda, sizin ViewModel özelliktir doğru anlamak. Bu MenuItem için aynı DataContext ayarlayacaktır ve DataContext doğrudan bağlayabilir:

IsChecked="{Binding SaveToDbOneChecked, Mode=TwoWay}" 
+0

Harika! Bu tamamen işe yarıyor! Çok teşekkür ederim efendim!! – Kazoooka

İlgili konular