Реализация модального с ObservableCollection

Я использую freshmvvm.

модальный

public class Expense : INotifyPropertyChanged
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ObservableCollection<ImageSource> Images { get; set; }//here
    public event PropertyChangedEventHandler PropertyChanged;
}

Я хотел бы дать изображениям такие свойства, как (имя, тип, источник)

 public ObservableCollection<ImageSource> Images { 
   public string name { get; set; }
   public string type { get; set; }
   public ImageSource source { get; set; }
 }

1 ответ

Решение

Я думаю, что понимаю вашу проблему. Вы хотите добавить некоторые "метаданные" к изображениям. Вы можете создать класс-оболочку вокруг ImageSource или получить класс из ImageSource (я покажу оба):

Класс Wrapper

public class ImageWrapper
{
   public string name { get; set; }
   public string type { get; set; }
   public ImageSource source { get; set; }
}

public class Expense : INotifyPropertyChanged
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ObservableCollection<ImageWrapper> Images { get; set; }//here
    public event PropertyChangedEventHandler PropertyChanged;
}

Производный класс

public class MyImageSource : ImageSource
{
   public string name { get; set; }
   public string type { get; set; }
}

public class Expense : INotifyPropertyChanged
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ObservableCollection<MyImageSource> Images { get; set; }//here
    public event PropertyChangedEventHandler PropertyChanged;
}

Во втором примере вам не понадобится свойство для хранения ImageSource, поскольку объект issel является ImageSource с добавленными свойствами. Если это не окажет негативного влияния на ваше заявление, я бы пошел с этим. Если это потребует много рефакторинга, первый пример тоже хорошо.

Другие вопросы по тегам