wpf组合框中的默认值

时间:2012-07-30 04:29:51

标签: wpf data-binding combobox

我有一个数据绑定组合框,列出了财务年度。用户从该组合中选择一个值,并从“客户”组合框中选择一个值,然后该组合框选择该财务年度的客户报告以供用户处理。虽然可以处理历史文档,但默认用例是处理刚刚结束的财务年度的报表,因此我想将组合框设置为默认为(当前)2011/2012,这是FinancialYear的字符串属性实体。

我的xaml:

<ComboBox Canvas.Left="353" 
          Canvas.Top="18" 
          Height="23" 
          Name="cboFinancialYear"
          Width="120" 
          DisplayMemberPath="FinancialYear1" 
          ItemsSource="{Binding}" 
SelectedValuePath="FinancialYearID" />;

我的代码中的Window_Loaded方法:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    String thisYear = MainViewModel.GetCurrentFinancialYear();
    lGFinanceEntities = new LGFinanceEntities();
    // Load data into FinancialYears. You can modify this code as needed.
    CollectionViewSource financialYearsViewSource = ((CollectionViewSource)(this.FindResource("financialYearsViewSource")));
    ObjectQuery<FinancialYear> financialYearsQuery = this.GetFinancialYearsQuery(lGFananceEntities);
     financialYearsViewSource.Source = financialYearsQuery.Execute(System.Data.Objects.MergeOption.AppendOnly);
     cboFinancialYear.SelectedItem = thisYear;
}

但是这似乎没有任何效果,组合框中的选定项目是FinancialYear表中的第一年。

有谁可以指出我做错了什么?我环顾四周,但组合框中的大多数默认值实现似乎都是'Select a year'排序作为指令文本,而我想实际选择一个默认值。

2 个答案:

答案 0 :(得分:1)

SelectedItem具有对ItemsSource对象的引用。如果您的ItemsSource属于IEnumerable<FinancialYear>类型,则无法将SelectedItem设置为字符串。

答案 1 :(得分:0)

cboFinancialYear.SelectedValue=thisYear.FinancialYearID;

使用SelectedValue而不是SelectedItem,我希望这会有所帮助。