Veröffentlicht 17. Mai 201213 j Hallo ich hoffe es kann mir einer helfen, ich komme einfach nicht auf die Lösung, und bei Google gebe ich wohl immer das falsche ein Ich habe ein DataGrid das mit x Datensätzen gefüllt wird, darauf befindet sich ein Contextmenü mit 3 Einträgen "Neu", "Bearbeiten" und "Löschen". Wenn ich ein ContextMenuItem anklicke wird die jeweilige Aktion ausgeführt. Bis hier hin bekomme ich alles selber hin. Ich möchte nun per XAML die "IsEnabled"- Eigenschaft des ContextMenuItem abhängig davon machen ob ein Zeile des DataGrid`s ausgewählt wurde oder nicht. Soll heißen, wenn eine Zeile gewählt, dann soll "Bearbeiten" und "Löschen" aktiv sein, wenn keine Zeile gewählt dann nicht. Gruß Hans-Jörg
18. Mai 201213 j Hallo, ich habe das einmal so gelöst: 1. Kontextmenüentrag 'Command'-Eigenschaft auf ein Command in der Codebehind-Datei gesetzt (dies muss dann ICommand implementieren, dazu gibts aber viele Dinge in verschiedenen Foren) 2. SelectedItem des Datagrid an eine Variable in der ViewModel-Klasse gebunden 3. das Command unter 1. besitzt eine Eigenschaft CanExecuted oder so ähnlich. Diese musst du implementieren und true zurückgeben, wenn die SelectedItem-Variable unter 2. nicht null ist Bei mir war es allerdings so, dass, außer am Anfang, IMMER eine Zeile ausgewählt war. Dazu gibts sicher eine Eigenschaft, die ich aber nicht gefunden habe. Mir kommts so vor, als ob wir mit diesem WPF wieder in Richtung MFC gehen.
18. Mai 201213 j Autor Hallo ich habe auch eher darauf gehofft, das man das Komplett in XAML abbilden kann. Denn wenn ichs ähnlich mache wie du, kann ich mir sogar die Command-Eigenschaft sparen. Ich könne ja auf das Ereignis MouseRightButtonDown reagieren, dort überprüfen, ob eine Zeile ausgewählt wurde und dann im ModelView die Variable setzen. Aber so richtig WPF- Style ist das auch nicht Gruß Hans-Jörg
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.