Установить значение по умолчанию в выпадающем списке программно - PullRequest
1 голос
/ 02 сентября 2010

Я работаю над WPF. Я использую Visual Studio 2010, .NET 4.0 и использую Radcombobox в своем приложении. Он правильно заполняется тремя строками, и теперь у меня возникают проблемы с выбором значения по умолчанию. Я хочу выбрать первое значение индекса в качестве значения по умолчанию, когда оно начинает загружать 3 строки в раскрывающемся списке. Как мне сделать это программно? Это должно быть сделано в xaml или в C #?

Ответы [ 4 ]

0 голосов
/ 10 сентября 2010

Это больше ответ MVVM:

Свяжите свойство SelectedIndex в XAML со свойством в вашей модели представления.

SelectedIndex="{Binding Path=SelectedIndex, Mode=TwoWay}"

В вашем ViewModel установите значение SelectedIndex равным 1, а затем вызовите PropertyChangeNotification, чтобы представление могло обновляться (это предполагает, что ваш ViewModel реализует INotifyPropertyChanged, и большинство реализаций VM используют для этого базовый класс).

SelectedIndex = 1;
NotifyPropertyChanged("SelectedIndex");
0 голосов
/ 02 сентября 2010

Если настройка SelectedIndex из XAML не работает, я бы попытался сделать это в событии загрузки кода C #.

myName.SelectedIndex = 0;

0 голосов
/ 07 сентября 2010

Не следует использовать SelectedValue AND SelectedIndex одновременно, так как это часто создает своего рода конфликт.Я предлагаю вам удалить SelectedIndex = "0" из xaml и установить свойство, к которому вы привязываете SelectedValue из кода.

пример:

MySelectedValue = MyItemsSource[0];
0 голосов
/ 02 сентября 2010

Используйте счетчик. Создайте логическую переменную и назовите ее boolDefaultSet. Он должен инициализироваться со значением по умолчанию false.

Предположительно, вы бы использовали цикл для вывода блоков опций для вашего блока выбора ... внутри этого цикла напишите некоторую логику, чтобы проверить, верно ли boolDefaultSet. Если нет, то выведите поле с атрибутом «selected», затем установите boolDefaultSet равным true. Вот некоторый код VB, который вы могли бы реализовать в C #:

Dim boolDefaultSet as boolean<br> for i as integer = 0 to 2<br> if boolDefaultSet then<br> Response.Write("<option value="+myval+">"+myval+"</option>")<br> else<br> Response.Write("<option value="+myval+" selected>"+myval+"</option>")<br> boolDefaultSet=true<br> next i

...