2013-07-29 3 views
0

Мне нужно предварительно заполнить выпадающий список из кода в Silverlight со значениями от 1 до 10, и по умолчанию значение по умолчанию должно быть 3. Как мне это сделать?Prepopulate combobox в silverlight 5

private int _Rounds=3; 

[RequiredField] 
[MultipleChoice] 
    public int Rounds 
      { 
       get { return this._Rounds; } 
       set 
       { 
        if (this._Rounds != value) 
        { 
         this.ValidateProperty("Rounds", value); 
         this._Rounds = value; 
         this.RaisePropertyChanged("Rounds"); 
        } 
       } 
      } 

ответ

2

Просто быстрый пример, чтобы указать вам в правильном направлении, но добавить к вашей ViewModel ваши возможные варианты:

private readonly IEnumerable<int> roundOptions = Enumerable.Range(1, 10); 
public IEnumerable<int> RoundOptions 
{ 
    get 
    { 
     return roundOptions; 
    } 
} 

А затем связывают ваше XAML:

<ComboBox SelectedValue="{Binding Rounds, Mode=TwoWay}" ItemsSource="{Binding RoundOptions}" /> 

Это добавляет к ComboBox возможные варианты, содержащиеся в RoundOptions, а затем говорит, чтобы сохранить переменную переменной Rounds между ViewModel и пользовательским интерфейсом, используя TwoWay. Если параметры раунда будут обновляться в ViewModel для разных наборов параметров, я бы вместо этого использовал ObservableCollection.

По крайней мере, это основано на вашем тексте вопроса. Я не знаю, для чего предназначен атрибут [MultipleChoice].

+0

+1, но второстепенный вопрос: «Перечислить. Изменить (1, 10) .ToList()' – McGarnagle

+0

@McGarnagle - Мне это нравится. Ред. – McAden

Смежные вопросы