2010-09-02 4 views
1

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

+0

Какие у вас проблемы? Разве не было бы в XAML или "myComboBox.SelectedIndex = 0" в коде, чтобы быть достаточно хорошим? – ASanch

+0

Если вы отправите образец кода, было бы легче определить, часто у меня есть свойство выбранного значения в моей модели viewmodel, и оно программно задано. Вы делаете это с использованием шаблона MVVM? – JoshVarga

+0

Это не сработало, поэтому я разместил здесь этот вопрос. Я новичок в WPF, но я сделал аналогичную вещь в формах Windows с .NET 3.5. Я знаю, что это не должно быть такой проблемой, но это просто не работает. – zack

ответ

0

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

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

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

+0

Я имею в виду делать Мне действительно нужно это сделать? Должен быть атрибут или свойство RadComboBox? Разве это не так просто? Я не знаю, почему SelectedItem = 1 в теге combo box в xaml не работает. Или в коде C# либо. – zack

+0

SelectedItem не будет работать. Попробуйте SelectedIndex – GWLlosa

0

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

myName.SelectedIndex = 0;

+0

, который не будет работать ни – zack

0

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

пример:

MySelectedValue = MyItemsSource[0]; 
0

Это скорее MVVM ответ:

Свяжите SelectedIndex свойство в XAML свойству на вашем ViewModel.

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

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

SelectedIndex = 1; 
NotifyPropertyChanged("SelectedIndex"); 
Смежные вопросы