2016-06-20 6 views
0

Ich habe ein Xamarin.Forms-Projekt, in dem ich Xlabs verwende, um Checkboxen zu implementieren. Ich kann sie erscheinen lassen, was großartig ist. Ich möchte in der Lage sein, dies zu tun:Wie wird eine Aktion ausgeführt, wenn CheckBox Listenansicht ausgewählt ist?

Aber mit meinen Kontrollkästchen. Ich möchte in der Lage sein, Checkbox-Auswahl zu handhaben, wie es passiert. Von dem, was ich online gesehen habe, kann ich eine neue boolesche Eigenschaft meines Studentenobjekts selected setzen, aber das funktioniert einfach nicht mit meinem Projekt. Hier ist mein aktueller Ansatz:

void OnSelection(object sender, EventArgs e) 
    { 
     CheckBox isCheckedOrNot = (CheckBox)sender; 
     var name = isCheckedOrNot.DefaultText; 

     //not sure what to do here? 
     var student = ((CheckBox)sender)... 

     // set time of student checkin 
    } 

EDIT: Checkbox als so erklärt:

<ViewCell> 
    <ViewCell.View> 
     <controls:CheckBox DefaultText="{Binding complete_name}" TextColor="Black" CheckedChanged="OnSelection" Checked="{Binding selected}"/> 
    </ViewCell.View> 
</ViewCell> 
+0

Aber wird mir das erlauben, sofort zu wissen, wenn ich die Checkbox anlege, dass es berührt wurde? "CheckedItems" scheint etwas zu sein, was Sie nach der Tat tun, um etwas an allen von Ihnen ausgewählten Objekten zu tun. – panthor314

+0

Ich war mir dessen nicht bewusst? Ich bekomme einen Build-Fehler beim Versuch zu sagen, es gibt keine Eigenschaft des Namens 'ItemChecked' – panthor314

+0

Ich denke, ich bin mir nicht sicher, wie ich' ItemChecked' Event implementieren könnte, wenn ich das Kontrollkästchen in Xaml deklariere? – panthor314

Antwort

0

Ich bin sehr neu in XAML/C# so entschuldige ich mich für diese schlechte Frage zu stellen, aber es ist so einfach wie gesagt:

void OnSelection(object sender, EventArgs e) 
    { 
     CheckBox isCheckedOrNot = (CheckBox)sender; 
     var selectedStudent = isCheckedOrNot.BindingContext as Student; 
     ... 
    } 

, um das Element zu erhalten, das Sie überprüft haben.