Wpf Combobox selectedindex показывает старое значение - PullRequest
0 голосов
/ 05 марта 2019

У меня есть комбинированный список с двумя разными привязками.

                <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" все еще старое значение. Я должен открыть выпадающее меню, чтобы обновить значение. Тогда все работает, выпадающий список показывает только новое значение. Как я могу обновить значение немедленно, не открывая выпадающее меню? Я уже искал несколько часов и пытался, но не нашел достойного решения: (

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Правильно ли, что ваша привязка применяется только к контенту ?. Если вы ничего не выбираете с помощью графического интерфейса, то вы только обновляете выпадающее меню.

Если вы не выберете элемент, свойство selecteditem не изменится. Если это так, вам следует вызвать событие или принудительно вызвать Combobox.selecteditem в коде.

0 голосов
/ 06 марта 2019

хорошо, у меня очень плохое решение. Я создал обработчик события загрузки, а затем установил для свойства IsDropDownOpen значение true, а затем снова значение false. Я слишком долго ищу ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...