Xamarin - Использование изображения в настраиваемом представлении списка ViewCell

Я хочу создать настраиваемую ячейку ViewCell для использования в ListView, как я это делал много раз раньше. Однако это первый раз, когда мне нужно было использовать изображение в настраиваемой ViewCell, и я не могу заставить его работать.

Итак, у меня есть моя модель:

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

И в моем пользовательском 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");

Затем на своей странице я заполняю список таких объектов:

        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));

Все работает фантастически, ЗА ИСКЛЮЧЕНИЕМ изображения. Ярлыки заполняются нормально, но изображение каждого элемента всегда пустое. Может ли кто-нибудь сказать мне, что я делаю не так? Я также пробовал использовать в модели строку вместо Image () и устанавливать источник изображения с помощью строки, но мне тоже не повезло. Я проверил правильность ресурсов и могу отображать их как изображения вне ListView.

Заранее спасибо.


person Jeffrey Bane    schedule 21.09.2016    source источник


Ответы (1)


Ваша проблема в том, что вы пытаетесь напрямую привязать весь объект Image (это предназначено?), Когда ожидается строка, попробуйте это вместо:

new AttendedMeeting[] 

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

И в вашей модели:

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;}  
}
person Mario Galván    schedule 22.09.2016
comment
Большое тебе спасибо. Это сработало, а также привело меня в другую область, где я неправильно устанавливал источник: отлично работает! - person Jeffrey Bane; 22.09.2016