我有一个带有两个的 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} 对于每个选择。
我希望清除先前的选择并为每个选择显示一个新列表。谢谢