Ho un'applicazione MVVM e voglio aggiungere un ContextMenu.IsChecked Binding non funziona in MenuItem in un ContextMenu
ho aggiunto il ContextMenu per XAML e quindi impostare le voci come questo (un solo articolo qui perché non ha importanza):
<MenuItem Header="{x:Static Monitor:MonitorResources.R0206_SaveLatestValueToDatabase}"
IsCheckable="true"
IsChecked="{Binding ElementName=root, Path=Model.SaveToDbOneChecked}"
IsEnabled="{Binding ElementName=root, Path=Model.SaveToDbOneEnabled}">
Il SaveToDbOneChecked e SaveToDbOneEnabled sono proprietà nel mio modello che sono attuate come questo:
private bool mSaveToDbOneEnabled;
public bool SaveToDbOneChecked
{
get { return mSaveToDbOneChecked; }
set { mSaveToDbOneChecked = value; OnPropertyChanged("SaveToDbOneChecked"); }
}
ho impostato questi prima della ContextMenu viene chiamato sul SelectionChanged nella GridView il ContextMenu è in Ma non mostrerà il segno Controllato accanto al testo del MenuItem anche se il SaveToDbOneChecked è stata impostata. al vero! Non so dove faccio qualcosa di sbagliato e spero che qualcuno possa aiutarmi qui.
eseguire l'applicazione in debug e verificare la presenza di errori di associazione a finestra di output. –
Sì, ce ne sono parecchi: Impossibile trovare l'origine per l'associazione con il riferimento 'ElementName = root'. BindingExpression: Path = Model.SaveToDbOneChecked; DataItem = null; l'elemento target è 'MenuItem' (Name = ''); la proprietà target è "IsEnabled" (tipo "Boolean") qual è il mio problema con il binding? o_O – Kazoooka