Я сохраняю это как фрагмент. C # 6 добавляет хороший синтаксис для вызова обработчика.
// INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
private void Set<T>(ref T property, T value, [CallerMemberName] string propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(property, value) == false)
{
property = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Это потому, что ссылки на ваши изображения жестко запрограммированы. Вы можете использовать такой сервис, как Renderer2
, чтобы прочитать значение из DOM, но лучший способ это сделать:
Хранить ссылки на изображения как часть модели, то есть в списке.
и измените
<mat-option *ngFor="let option of list" [value]="option.name">
на
<mat-option *ngFor="let option of list" [value]="option">
, чтобы, когда выбранный элемент был объектом, который содержит как и ссылка на изображение через привязку данных.