我有两个ComboBox
WPF应用程序。当我选择的第一个与第一ComboBox中的项目将在第二个如何清除所选项目集合
填充这是我的选择物业
public string SelectedApplication
{
set
{
if (_selectedApplication == value) return;
this._selectedApplication = value;
InitializeTransactionTypes();
}
get
{
return this._selectedApplication;
}
}
这里我正在检查两个组合框之间的匹配ID以填充第二个组合框项目。
ObservableCollection<TransactionTypeViewModel> _transTypeObsList = new ObservableCollection<TransactionTypeViewModel>();
private void InitializeTransactionTypes()
{
if (_selectedApplication != null)
{
var getAppCode =
ApplicationVModel.GetAllApplications()
.FirstOrDefault(apps => apps.Name == _selectedApplication);
var transTypeList = TransactionTypeVModel.GetAllViewModelTransTypes()
.Where(t => getAppCode != null && t.Id == getAppCode.Id);
transactionTypes = new ObservableCollection<TransactionTypeViewModel>(transTypeList);
NotifyPropertyChanged("TransactionTypes");
}
}
有关方法的更多信息:
VM的列表从模型
的列表映射 public List<TransactionTypeViewModel> GetAllViewModelTransTypes()
{
TransactionTypeViewModels = TransactionTypeModel.GetAllTransactionTypes().Select(transType => new TransactionTypeViewModel
{
Id = transType.Id,
Name = transType.Name,
})
.ToList();
return TransactionTypeViewModels;
}
可以说,我选择第一组合框具有{A,B,C,d} ...第二个组合框具有{A'1,A'2,A'3},当我从第一个组合框中选择项目时,第二个组合框将不断填充 项目。我想只显示{A'1 for A} {B'1 for B} ...等,但现在它所做的是{A'1 A'1 A'1 ... for A} {B' 1 B'1 B'1 ... for B}为每个选择。
我想先前的选择被清除,并显示一个新的列表每个选择。谢谢
而是在'InitializeTransactionTypes'尝试'清除重建'_transTypeObsList'每次() '和'添加(...)'项目一个接一个。 – dkozl
要清楚我不知道这是否是问题,但您经常创建您的列表。而是'transactionTypes = new ObservableCollection ....'做一些类似'transactionTypes.Clear(); foreach(....)transactionTypes.Add(....)' –
dkozl
@dkozl谢谢,这对我有用......我清除并添加了每一次迭代。 –