2016-09-21 5 views
0

Ich bin dabei, ein benutzerdefiniertes ViewCell zu erstellen, um es in einem ListView zu verwenden, wie ich es schon oft getan habe. Dies ist jedoch das erste Mal, dass ich ein Bild in einem benutzerdefinierten ViewCell verwenden muss, und ich kann es nicht zur Arbeit bringen.Xamarin - Verwenden eines Bildes in einer benutzerdefinierten Listenansicht ViewCell

Also habe ich mein Modell bekam:

public class AttendedMeeting 
{ 
public string Title { get; set; } 
public string Date { get; set; } 
public string Status { get; set; } 
public Image MeetingImage { get; set;} 
} 

Und in meiner benutzerdefinierten ViewCell:

Label titleLabel = new Label(); 
titleLabel.SetBinding(Label.TextProperty, "Title"); 

Label dateLabel = new Label(); 
dateLabel.SetBinding(Label.TextProperty, "Date"); 

Label statusLabel = new Label(); 
statusLabel.SetBinding(Label.TextProperty, "Status"); 

Image meetingImage = new Image(); 
meetingImage.SetBinding(Image.SourceProperty, "MeetingImage"); 

dann in meine Seite, besiedeln ich eine Liste von Objekten wie folgt aus:

 ListView meetingsListView = new ListView(); 

     Image imageCheck = new Image(); 
     imageCheck.Source = "Check.png"; 

     Image imageLine = new Image(); 
     imageLine.Source = "Line.png"; 

     Image imageCircle = new Image(); 
     imageCircle.Source = "Circle.png"; 


     meetingsListView.ItemsSource = new AttendedMeeting[] { 
          new AttendedMeeting {Title = "Meeting 1", 
           Date="Monday - May 16th 2016", 
           Status="Verified", 
           MeetingImage=imageCheck 
               }, 
       new AttendedMeeting {Title = "Meeting 2", 
           Date="Monday - May 16th 2016", 
           Status="Verified", 
           MeetingImage=imageLine 
               }, 
       new AttendedMeeting {Title = "Meeting 3", 
           Date="Monday - May 16th 2016", 
           Status="Verified", 
           MeetingImage=imageCheck 
               }, 
       new AttendedMeeting {Title = "Meeting 4", 
           Date="Monday - May 16th 2016", 
           Status="Verified", 
           MeetingImage=imageCheck 
               } 
     }; 
     meetingsListView.ItemTemplate = new DataTemplate(typeof(CellMeetingsAttended)); 

Alles funktioniert fantastisch außer dem Bild. Die Labels füllen sich gut, aber das Bild ist immer leer auf jedem Element. Kann mir jemand sagen, was ich falsch mache? Ich habe auch versucht, eine Zeichenkette anstelle von Image() im Modell zu verwenden und die Bildquelle mit der Zeichenkette zu setzen und hatte auch kein Glück. Ich habe überprüft, dass die Ressourcen korrekt sind. Ich kann sie als Bilder außerhalb der ListView anzeigen.

Vielen Dank im Voraus.

Antwort

2

Ihr Problem ist, dass Sie versuchen, das komplette Image-Objekt direkt zu binden, (ist das gedacht?), Wenn ein String erwartet wird, versuchen Sie dies anstelle:

new AttendedMeeting[] 

{ 
    new AttendedMeeting 
    { 
     Title = "Meeting 1", 
     Date = "Monday - May 16th 2016", 
     Status = "Verified", 
     MeetingImage = "Line.png"; //--Try this! 
    },... 

Und in Ihrem Modell:

public class AttendedMeeting 
{ 
    public string Title { get; set; } 
    public string Date { get; set; } 
    public string Status { get; set; } 
    //Change this: 
    public string MeetingImage { get; set;} 
} 
+1

Vielen Dank. Das funktionierte und es führte mich auch zu einem anderen Bereich, in dem ich die Quelle nicht richtig einstellte, funktioniert großartig! – AS2012

Verwandte Themen