2013-07-29 3 views
0

실버 라이트의 코드에서 콤보 박스를 1-10의 값으로 채울 필요가 있으며 선택 값은 기본적으로 3이어야합니다. 어떻게해야합니까?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}" /> 

이에 추가를 콤보 상자에 가능한 옵션이 RoundOptions에 포함되어 있고 Rounds 변수를를 사용하여 ViewModel과 UI간에 동기화 할 것이라고 말합니다.3210 바인딩 라운드 옵션이 ViewModel에서 다른 옵션 세트로 업데이트 될 경우 ObservableCollection을 대신 사용합니다.

적어도 질문 텍스트를 기반으로합니다. [MultipleChoice] 속성의 의도를 알 수 없습니다.

+0

+1하지만 작은 문구 : Enumerable.Range (1, 10) .ToList() – McGarnagle

+0

@McGarnagle - 나는 그것을 좋아한다. 편집 됨. – McAden

관련 문제