ItemsSource / SelectedItem vs ItemsSource / SelectedIndex BInding

时间:2015-07-02 17:38:09

标签: wpf mvvm

我在三个组合框中设置值:年,月和日。年份组合框具有存储在ObservableCollection< Year>中的数据。 YearsList以降序顺序排列,可以使用SelectedIndex =“0”进行设置,以便在页面呈现时始终显示当前年份:

查看:

<ComboBox Name="cboYear"
          ItemsSource="{Binding YearsList, Mode=OneTime}"
          DisplayMemberPath="year"
          SelectedIndex="0"
          SelectedItem="{Binding SelectedYear, Mode=TwoWay}" />

视图模型:

public ObservableCollection<Year> YearsList { get; set; }
private Year _selectedYear;

public Year SelectedYear
{
    get
    {            
        return _selectedYear;
    }
    set
    {                
        _selectedYear = value;
        RaisePropertyChanged("SelectedYear");
    }
}

@Will建议使用SelectedIndex / SelectedItem方法,但使用cboYear(即删除SelectedIndex =“0”)会为Year组合框呈现空白默认值。所以使用这种方法,我是否需要另一种方法@Clemens and @Almulo建议呈现默认值,或者这样的逻辑可以包含在SelectedYear属性中吗?

0 个答案:

没有答案