У меня есть приложение WPF с двумя ComboBox
Когда я выбираю первый из них предметы, связанные с первым списком будет заполняться на втором одномКак очистить выбранные элементы коллекции
Вот мой выбор недвижимости
public string SelectedApplication
{
set
{
if (_selectedApplication == value) return;
this._selectedApplication = value;
InitializeTransactionTypes();
}
get
{
return this._selectedApplication;
}
}
здесь я проверяю соответствующий идентификатор между двумя полями для заполнения вторых элементов списка.
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} ... а второй combobox имеет {A'1, A'2, A'3}, когда я выбираю элемент из первого Combobox, второй combobo продолжает заполнять элементов. Я хотел показать только {A'1 для A} {B'1 для B} ... и т. Д., Но теперь он делает это {A'1 A'1 A'1 ..... для A} {B ' 1 B'1 B'1 .... для B} для каждого выбора.
Я хочу, чтобы предыдущий выбор был очищен и отобразился новый список на выбор. Спасибо
Вместо того, чтобы воссоздавать '_transTypeObsList' каждый раз, когда в' InitializeTransactionTypes' пытаются 'Clear() 'и' Добавить (...) 'элементы по одному. – dkozl
быть понятным Я не знаю, если это проблема, но вы часто создаете свой список. Вместо этого 'transactionTypes = new ObservableCollection ....' делать что-то вроде 'transactionTypes.Clear(); foreach (....) transactionTypes.Add (....) ' –
dkozl
@dkozl Спасибо, что работает для меня ... Я очистился и добавил для каждой итерации. –