Вот соответствующие части файла XAML:
xmlns:local="clr-namespace:BindingTest"
<ListBox x:Name="myList"
ItemsSource="{Binding Source={x:Static local:MyClass.Dic},
Path=Keys,
Mode=OneWay,
UpdateSourceTrigger=Explicit}">
</ListBox>
MyClass - это общедоступный статический класс, а Dic - это статическое общедоступное свойство, словарь.
В определенный момент я добавляю элементы в словарь и хотел бы, чтобы ListBox отражал изменения.
Это код, который я думал использовать, но он не работает:
BindingExpression binding;
binding = myList.GetBindingExpression(ListBox.ItemsSourceProperty);
binding.UpdateTarget();
Этот код вместо этого работает:
myList.ItemsSource = null;
myList.ItemsSource = MyClass.dic.Keys;
Я бы предпочел использовать UpdateTarget, но не могу заставить его работать.
Что я делаю не так?