Как получить текст, отображаемый в comobobox (winform), привязанный к анонимному списку?

#c# #winforms #linq-to-sql #combobox #anonymous-types

#c# #winforms #linq-to-sql #combobox #анонимные типы

Вопрос:

В моем приложении .net 3.5 win-form я связываю поле со списком с этими инструкциями.

 using (var db = new NewspaperDataContext())
            {
                var list = from p in db.Customers
                           orderby p.Name ascending
                           select new
                                      {
                                          p.Id,
                                          p.Name
                                      };
                 cboCustReport.DataSource= list;
               cboCustReport.DisplayMember = "Name";
                cboCustReport.ValueMember = "Id";
                cboCustReport.SelectedIndex = -1;
            }
  

Но при извлечении выделенного текста из поля со списком я «»(пустой), если я использую свойство SelectedItem, то у меня есть {Id= 3 , Name = Amit Ranjan } . Когда я добавил часы и попытался построить выражение, это дало мне что-то вроде этого:

 ((<>f__AnonymousType2<int,string>)(cboCustReport.SelectedItem)).Name;
  

Пожалуйста, помогите мне, что я должен использовать, чтобы получить значение имени свойства.

Ответ №1:

Попробуйте быстро выполнить запрос, вызвав .ToList() в конце:

 var list = (from p in db.Customers
            orderby p.Name ascending
            select new
            {
                p.Id,
                p.Name
            }).ToList();