私は2つのWPFアプリケーションを持っていComboBox
ます最初のものを選択すると、最初のコンボボックスに関連するアイテムが2番目のものに取り込まれます
これが私の選択したプロパティです
public string SelectedApplication
{
set
{
if (_selectedApplication == value) return;
this._selectedApplication = value;
InitializeTransactionTypes();
}
get
{
return this._selectedApplication;
}
}
ここでは、2 つのコンボボックス間で一致する ID をチェックして、2 番目のコンボボックス項目を設定しています。
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} が含まれていることを選択し、2 番目のコンボボックスに {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} を選択するたびに。
以前の選択をクリアして、選択ごとに新しいリストを表示したい。ありがとう