我有一个数据绑定组合框,列出了财务年度。用户从该组合中选择一个值,并从“客户”组合框中选择一个值,然后该组合框选择该财务年度的客户报告以供用户处理。虽然可以处理历史文档,但默认用例是处理刚刚结束的财务年度的报表,因此我想将组合框设置为默认为(当前)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'排序作为指令文本,而我想实际选择一个默认值。
答案 0 :(得分:1)
SelectedItem具有对ItemsSource对象的引用。如果您的ItemsSource属于IEnumerable<FinancialYear>
类型,则无法将SelectedItem设置为字符串。
答案 1 :(得分:0)
集
cboFinancialYear.SelectedValue=thisYear.FinancialYearID;
使用SelectedValue而不是SelectedItem,我希望这会有所帮助。