2016-06-28 11 views
0

Ich habe eine Silverlight-Anwendung. Eines von StackPanel zeigt die Tabelle an. Die erste Spalte ist ein Kontrollkästchen.Event-Handler kann nicht in MVVM gefunden werden

Was ich will ist, dass, sobald ich auf das Feld klicke, erscheint ein Meldungsfeld mit Y/N. Ich habe eine Complete_Checked Methode in MVVM. Aber ich habe den Fehler

Event-Handler ‚Complete_Checked` nicht auf Klasse gefunden .....

Antwort

1

Sie nicht Event-Handler klicken MVVM verwenden, können Sie CommandBinding oder DataBinding verwenden müssen, je nach was tust du.

In Ihrem Beispiel verwenden Sie Datenbindung. Sie möchten an die Checkbox-Abhängigkeitseigenschaft IsChecked binden. Sie möchten auch den Modus von TwoWay verwenden. Dadurch kann die Benutzeroberfläche die gebundene Eigenschaft aktualisieren, wenn sie geändert wird.

<CheckBox IsChecked="{Binding CheckBoxIsChecked, Mode=TwoWay}"> 

Dann in Ihrem Objekt Modell nicht Viewmodel

private bool _checkBoxIsChecked; 

public bool CheckBoxIsChecked 
{ 
    get{ return _checkBoxIsChecked;} 
    set{_checkBoxIsChecked = value; OnPropertyChanged("CheckBoxIsChecked"); } 
} 
+0

So [diese Antwort von telerik] (http://www.telerik.com/forums/problem-to-catch- checked-change-event-from-gridviewcheckboxspalte-type-of-column) ist falsch? – Bigeyes

+0

@Bigeyes Sie nehmen keinen MVVM-Ansatz. Sie verwenden den Hintercode des Xaml. Der Vorteil ist, dass sie Zugriff auf die Kontrolle haben. Sie sehen, wo das OP 'radGridView1' schreibt, auf das es Zugriff hat. Er oder sie arbeitet in der Xaml.CS-Datei. –

+0

Die Sache ist, dass ich bereits "etwas" bind, ich habe keine Kontrolle darüber. Kann ich zwei Gegenstände binden? – Bigeyes