0

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

我的xml:

<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 表中的第一年。

谁能指出我做错了什么?我环顾四周,但组合框中的大多数默认值实现似乎都是“选择一年”类型的指令文本,而我想实际选择一个默认值。

4

2 回答 2

1

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

于 2012-07-30T04:59:03.990 回答
0

cboFinancialYear.SelectedValue=thisYear.FinancialYearID;

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

于 2012-07-30T04:58:36.437 回答