Как очистить combobox после исследования в WPF?
У меня было исследование по критериям с двумя combobox, оно отлично работает после завершения исследования, у меня есть кнопка Display All : сбросить combobox на null..и DataGrid display со всеми элементами ,
Проблема в том, что combobox должен быть пустым, когда я нажимаю на кнопку Dispaly All!
1) без выбора элемента в combobox(просто dispaly datagrid): у меня есть 6 элементов в datagrid, это правильно..и combobox пусты.
2) После выбора критериев поиска у меня есть правильный результат: (у меня есть всего 3 результата, это правильное действие)
3) Когда я нажимаю на кнопку Display All:(у меня есть все элементы в datagrid, 6 элементов..Это правильно) Но комбо-бокс не пуст!!
Вид:
The ViewModel:
Что я уже пробовал:
<pre> <Window x:Class="WPFAuthentification.Views.BusinesseventsView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" > <Label Content="Entity Type" Width="128" Grid.Row="1" Grid.ColumnSpan="2"/> <ComboBox HorizontalAlignment="Center" VerticalAlignment="Center" ItemsSource="{Binding EntityLevelEnum}" SelectedItem="{Binding EntityType, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True, TargetNullValue=''}" Grid.ColumnSpan="2" Grid.Column="1" /> <Button Content="Dislplay all" ToolTip="Display All Business Events" VerticalAlignment="Top" Command="{Binding Initialize}" Visibility="{Binding Path=ShowDisplayAllButton, Converter={StaticResource BoolToVis}}" /> <DataGrid ..... /> </Window>
<pre> class BusinesseventsViewModel : ViewModelBase1 { private ObservableCollection<BusinessEventClass> businessEventsList; private RelayCommand<string> initialize; public RelayCommand<string> Initialize { get { return initialize; } } public BusinesseventsViewModel() { //businessEventsList: to Get all the Business events businessEventsList = new ObservableCollection<BusinessEventClass>(WCFclient.getAllBusinessEvent()); //Enumeration of Entity Type and Criticality levelCriticalityEnum = new ObservableCollection<Level_Criticality>(Enum.GetValues(typeof(Level_Criticality)).Cast<Level_Criticality>()); entityLevelEnum = new ObservableCollection<BusinessEntityLevel>(Enum.GetValues(typeof(BusinessEntityLevel)).Cast<BusinessEntityLevel>()); //the Button Display All : initialize = new RelayCommand<string>(initFunc); } //Function of the Button Display All private void initFunc(object obj) { entityLevelEnum.Clear(); // EntityLevelEnum = null; levelCriticalityEnum.Clear(); //LevelCriticalityEnum = null; OnPropertyChanged("EntityLevelEnum"); OnPropertyChanged("LevelCriticalityEnum"); } private string entityType; public string EntityType { get { return entityType; } set { entityType = value; businessEventsList = filterByCriteria(entityType, criticality); OnPropertyChanged("BusinessEventsList"); OnPropertyChanged("EntityType"); } } //Function of the research : public ObservableCollection<BusinessEventClass> filterByCriteria(string entityType, string criticality) { BusinessEventsList = new ObservableCollection<BusinessEventClass>(WCFclient.getAllBusinessEvent()); ObservableCollection<BusinessEventClass> updatedList = new ObservableCollection<BusinessEventClass>(); if ((entityType == null) && (Criticality == null)) { updatedList = businessEventsList; levelCriticalityEnum = new ObservableCollection<Level_Criticality>(Enum.GetValues(typeof(Level_Criticality)).Cast<Level_Criticality>()); entityLevelEnum = new ObservableCollection<BusinessEntityLevel>(Enum.GetValues(typeof(BusinessEntityLevel)).Cast<BusinessEntityLevel>()); } if ((entityType != null && entityType != "") && (Criticality != null)) { updatedList = new ObservableCollection<BusinessEventClass>(BusinessEventsList.Where(a => a.EntityType.ToString().ToLower().Equals(criticality.ToString()) && a.Critciality.ToString().Equals(criticality.ToString()))); } }