У меня есть IMultivalueConverter
, который обновляет цвет фона StackPanel
при изменении PropertyA
или PropertyB
. Эти элементы управления создаются динамически.
Проблема: я добавил два StackPanels
и изменил PropertyA
в коде при нажатии кнопки. Это приводит к событию изменения свойства.
private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
Для первого stackpanel
цвет фона не обновляется, но для второго stackpanel
this.PropertyChanged inturn вызывает мой MultiValueConverter, и цвет фона обновляется.
Я не могу понять, почему обновляется только один элемент управления, когда оба принадлежат к одному типу, а обработчик событий не равен нулю.
РЕДАКТИРОВАТЬ: если я перетащу значение ячейки из другого элемента управления (DevExpress DataGrid) в первую панель стека, а затем изменю свойство, фон не будет обновляться. Он работает нормально, пока я не перетащу.
Обновлять:
<StackPanel.Background>
<MultiBinding Converter="{StaticResource ResourceKey=BackgroundColorConverter}">
<Binding Path="PropertyA" UpdateSourceTrigger="PropertyChanged" />
<Binding Path="PropertyB" UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</StackPanel.Background>
Обновление 2: я также пытался использовать MultiDataTrigger вместо Converter, но не смог решить проблему.