【发布时间】:2011-03-07 17:52:59
【问题描述】:
我有一个组合框,我绑定到一个可观察的集合,它会发生变化(根据选择的公司)并且大量公司将有一个帐户(项目)因此我想知道最好的方法是什么如果 ItemsSource 中只有 1 个项目,则使 ComboBox 设置 SelectedItem,否则将其保留为 null 以确保用户选择帐户。
我目前这样做的方式是在每次更改帐户集合时检查它,如果它只包含一个,则将绑定的选定项属性设置为集合中的第一项。
这似乎冗长,我需要将它分别实现到每个视图模型中,并为每个组合框编写最多 5 行代码。
以下是我目前的代码,但我想知道是否可以通过扩展 ComboBox 控件来实现这一点?如果有人对如何/从哪里开始有任何想法。
public CompanyGermanPower FromCompany
{
get { return _fromCompany; }
set
{
SetField(ref _fromCompany, value, () => FromCompany);
if(value!= null)
{
FromTradeAccountList = new ObservableCollection<TradeAccount>(TradeAccountAdapter.GetTradeAccounts(_session, value.ID));
if (Trade != null && FromTradeAccountList.Count == 1) Trade.TradeAccountFrom = FromTradeAccountList[0];
}
}
} private CompanyGermanPower _fromCompany;
【问题讨论】:
标签: c# wpf mvvm controls combobox