2017-05-16 1 views
-2

Je suis en train de faire Combobox, qui peut afficher des 2 classes, - employés - Employeur De toute évidence, les deux classes ont la variable éditableC# make ObservableCollection <T> dans tamplate

private ObservableCollection<Employer> _itemsEmployer 
    private ObservableCollection<Employee> _itemsEmployee 
    public ObservableCollection<T> Items, where T : Employee, Employer 
    { 
     get 
     { 
      return _itemsEmployee; 
     } 

     set 
     { 
      if (_itemsEmployee == value) 
      { 
       return; 
      } 

      _itemsEmployee = value; 
     } 
    } 

le Combobox:

<ComboBox x:Name="cbx" 
         IsTextSearchEnabled="True" 
         TextSearch.Text="EditAble" 
         ItemsSource="{Binding Items}" IsEditable="True" 
         DisplayMemberPath="EditAble" 
         Text="{Binding AddedText,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" 
         Canvas.Left="78" Canvas.Top="48" Width="259"> 
+3

Quelle est votre question? – niksofteng

Répondre

0

Les propriétés ne peuvent pas définir de contraintes génériques. Vous devez avoir une classe de base pour Employé et Employeur - par ex. La personne. De cette façon, la collection peut contenir à la fois les employés et les employeurs.

private ObservableCollection<Person> _persons = new ObservableCollection<Person>(); 

public ObservableCollection<Person> Items 
{ 
    get 
    { 
     return _persons; 
    } 

    set 
    { 
     if (value == _persons) 
     { 
      return; 
     } 

     _persons = value; 
    } 
}