Показать объект в Combobox - PullRequest
0 голосов
/ 05 июля 2011

У меня есть этот метод, он получает коллекцию объекта (EmployeeState), этот объект содержит следующие свойства: IdEmployeeState (int), StateName (строка) и Description (строка), и мне нужно показать в выпадающем списке ТОЛЬКО StateName , Это метод. Проблема с этим запросом linq заключается в том, что отображаются все столбцы, например: {StateName = Active} {StateName = NotActive} {StateName = Уволен}

И мне нужно показать в Combobox только имя: " Актив ", " Не активен " и " Уволен ". сохраняя объект загруженным в выпадающий список ( НЕ передавайте его в список строк )

Как я могу это сделать?

        public void loadEmployeeStateCombobox(ICollection<EmployeeState> employeeStateCollection)
        {           
            var result = from employeeState in employeeStateCollection
                         select new
                         {
                            //employeeState.StateName,
                            bb = employeeState.StateName
                         };

            _employeeStatecomboBox.ItemsSource = result.ToList();
        }

Ответы [ 2 ]

1 голос
/ 05 июля 2011

Вы также можете использовать Distinct, чтобы не повторять состояние в вашем комбо:

 _employeeStatecomboBox.ItemsSource = 
                employeeStateCollection.Select(e => e.StateName).Distinct();

ComboxBox в WinForm должен иметь DisplayMember и ValueMember. Приведенный ниже код показывает, как установить значение и отображение с тем же значением, но вы также можете установить значение для уникального идентификатора состояния.

        _employeeStatecomboBox.DataSource = employeeStateCollection.Select(e => e.StateName).Distinct();
        _employeeStatecomboBox.DisplayMember = "StateName";
        _employeeStatecomboBox.ValueMember = "StateName";

То же самое существует с ASP.NET, но это из моей памяти "DataTextField" и "DataValueField".

0 голосов
/ 05 июля 2011
  public void loadEmployeeStateCombobox(ICollection<EmployeeState> employeeStateCollection)
        {           
            var result = from employeeState in employeeStateCollection
                         select new SelectListItem 
                         {
                            //employeeState.StateName,
                            Value = employeeState.Id,//whatever the id prop is
                            Text=employeeState.StateName
                         };

            _employeeStatecomboBox.ItemsSource = result.ToList();
        }

Или создайте словарь, который тоже должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...