Реализация модального с 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 с добавленными свойствами. Если это не окажет негативного влияния на ваше заявление, я бы пошел с этим. Если это потребует много рефакторинга, первый пример тоже хорошо.