WPF: Bindung an Befehle im Code hinter

8

Ich habe eine WPF Microsoft Surface Application und ich verwende MVVM-Pattern.

Ich habe einige Schaltflächen, die im Code erstellt wurden und ich möchte Befehle an sie binden, aber ich weiß nur, wie das im XAML funktioniert

so:

%Vor%

Aber ich kann das nicht so machen, weil meine Buttons nicht im XAML existieren, nur im Code dahinter.

Wie also würde ein Befehl, der so funktioniert, im Code funktionieren?

    
sofri 17.06.2010, 08:09
quelle

3 Antworten

16

Wenn Sie davon ausgehen, dass Sie SurfaceButton mit "SurfaceButton1" benannt haben und Zugriff auf eine Instanz des Befehls haben, können Sie den folgenden Code verwenden:

%Vor%     
decyclone 17.06.2010, 08:14
quelle
13

Die angenommene Antwort funktioniert gut, wenn die Schaltfläche Zugriff auf den Befehl hat. In MVVM werden diese normalerweise getrennt gehalten (der Button in der Ansicht und der Befehl im View-Modell). In XAML verwenden Sie normalerweise eine Datenbindung, um es zu verbinden (wie das Beispiel in der Frage).

Mein Programm gab mir einen Fehler, wenn mein dynamischer Button den Befehl nicht finden konnte (weil er in einem völlig anderen Namensraum war). So habe ich das gelöst:

%Vor%     
Nightmare Games 14.10.2014 22:11
quelle
3

Ich habe den Code aus dem Link von Anvaka als Vorlage genommen. Ich verwende RadMenuItem von Telerik, aber Sie können sicherlich jede andere Komponente verwenden, die die Command-Eigenschaft zur Verfügung stellt.

%Vor%

Hoffe, es hilft ... und wenn etwas nicht klar ist, tut mir leid, es ist mein erster Beitrag:)

    
Zu1779 12.09.2012 09:32
quelle

Tags und Links