В Xaml, как вы можете программно изменить значение SolidColorBrush?

Привет, у меня есть приложение xaml, которое имеет один определенный цвет, используемый во многих местах на странице. Я хочу программно изменить значение этого цвета. Я не хочу обновлять цвет каждого объекта индивидуально. Я попробовал это:

<Grid
   Background="{Binding GalleryViewBrush, Mode=TwoWay}"
   Grid.Row="0"
   Grid.Column="0">

Тогда в коде позади:

public Brush GalleryViewBrush {get; задавать; }

GalleryViewBrush = new SolidColorBrush (Colors.Red);

Но цвет никогда не работает. Я тоже пробовал xbind, но не повезло

Спасибо

1 ответ

Ваша модель представления должна быть реализована INotifyPropertyChanged, а затем уволить PropertyChanged событие, когда ваше свойство кисти изменяется. Условно это делается в установщике для свойства.

private Brush _myBrush;
public MyBrush {
    get { return _myBrush; }
    set {
        _myBrush = value;
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MyBrush));
    }
}

Если ваш получить / установить для GalleryViewBrush в вашем вопросе, что на самом деле находится в примере кода в вашем вопросе, это, вероятно, проблема.

Имейте в виду опечатки в моем примере кода выше, я забил банкомат.

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