Как сделать так, чтобы поле со списком отображало элемент по умолчанию из списка при загрузке окна - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть приложения WPF с пользовательским элементом управления, который содержит пару комбинированных списков.Один из полей со списком заполняется и отображает первое значение, поскольку оно связано со свойством IEnumberable значений enum.Другой связан со свойством IEnumerable строковых значений.Это отображает все варианты в раскрывающемся списке, но не отображает значение при его первой загрузке.После выбора параметра пользователь может нажать кнопку очистки, которая удалит выбранный параметр и отображает первое значение в списке, пока не будет выбрано другое значение.Есть ли способ заставить его загрузить его с первым значением, уже заполненным как значение по умолчанию?

Контроль пользователя:

<ComboBox x:Name="insuranceTypesComboBox" ItemsSource="{Binding Path=InsuranceTypes}" SelectedItem="{Binding Path=FilteredType}" Width="100" />
<ComboBox x:Name="insurancesComboBox" ItemsSource="{Binding Path=Insurances}" SelectedItem="{Binding Path=FilteredPlan}" Width="100"/>

Свойства:

    public IEnumerable<string> Insurances
    {
        get
        {
            var insurances = (from i in this.repository.GetInsurance()
                              select i.CompanyName).ToList();
            return insurances.Distinct();
        }
    }

    public IEnumerable<InsuranceType> InsuranceTypes
    {
        get
        {
            return Enum.GetValues(typeof(InsuranceType)) as IEnumerable<InsuranceType>;
        }
    }

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Чтобы установить выбранный элемент по умолчанию, просто используйте (например):

myComboBox.SelectedIndex = 5;        // set the 6th item in list as selected

или вы можете использовать combobox.SelectedValue .Убедитесь, что вы случайно не вызвали событие изменения индекса.

см. selectedindex_selectedvalue

0 голосов
/ 12 декабря 2018

Вы можете выбрать первый элемент в выпадающем списке, добавив SelectedIndex=0 к xaml.Или попробуйте добавить UpdateSourceTrigger=PropertyChanged к привязке выбранного элемента:

<ComboBox x:Name="insuranceTypesComboBox" 
    ItemsSource="{Binding Path=InsuranceTypes}" 
    SelectedItem="{Binding Path=FilteredType, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" 
    Width="100"
    SelectedIndex="0" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...