У меня есть комбинированный список с двумя разными привязками.
<ComboBox Canvas.Left="194" Canvas.Top="101" Width="80" Height="30" FontWeight="Normal" SelectedIndex="0">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem Content="{Binding Source={x:Static my:DesignBinding.Instance},Path=AuxCoilWire,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<CollectionContainer Collection="{Binding Source={StaticResource ConfigDataPrimaryWire}, XPath=copperWires/copperWire/add[1]/@value}"/>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
ComboboxItem получает значение из другого окна и всегда обновляется через метод propertyChanged
public class DesignBinding : INotifyPropertyChanged
{
private static readonly DesignBinding instance = new DesignBinding();
private DesignBinding() { }
public static DesignBinding Instance
{
get { return instance; }
}
private double auxCoilWire;
public double AuxCoilWire
{
get { return auxCoilWire; }
set { auxCoilWire = value; NotifyPropertyChanged("AuxCoilWire"); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
Код на самом деле работает, поле со списком получает новое значение, но показывает мне selectedindex = "0" все еще старое значение.
Я должен открыть выпадающее меню, чтобы обновить значение.
Тогда все работает, выпадающий список показывает только новое значение.
Как я могу обновить значение немедленно, не открывая выпадающее меню?
Я уже искал несколько часов и пытался, но не нашел достойного решения: (