2013-07-29 3 views
0

Я пытаюсь отлаживать следующую строку кодаКак я могу найти тип источника данных?

binding.DataSource = this.bindingSource.DataSource; 

и хотите узнать больше информации о binding.DataSource

В ближайшем окне запроса? binding.DataSource возвращает

Count = 1 
[0]: {Contact Events} 

Я хочу, чтобы бросить binding.DataSource к чему-то я могу запросить с IntelliSense? На что я должен обратить внимание?

[Обновить] Источник привязки был создан следующим образом;

public BindingSource GetEventTypesBindingSource() 
    { 
     try 
     { 
      DbSet<ContactEventType> dset = base.Context.ContactEventTypes; 
      IOrderedQueryable<ContactEventType> qry = dset.Where(p => p.Id > 0).OrderBy(x => x.Description); 
      qry.Load(); 
      var bindingSource = new BindingSource(); 
      bindingSource.DataSource = dset.Local.ToBindingList(); 
      return bindingSource; 
     } 
     catch (Exception ex) 
     { 
      HandleException.Show(ex); 
     } 
     return null; 
    } 

[Update] Я попытался следующие в отладчике

? (List<ContactEvent>) binding.DataSource.GetType() 

но получить

The type or namespace name 'List' is not valid in this scope 
+0

'DataSource' всех элементов управления привязкой данных имеет тип' object'. Не получил ваш вопрос, «что я могу применить к нему». Уже при загрузке формы или где-то в элемент управления должен быть назначен DataSource. – Prash

ответ

1

Это, вероятно List<ContactEvent>, но вы можете узнать с помощью отладчика и/или отражение ,

Если вы просмотрите переменную в окне Watch отладчика, она отобразит тип данных. Если вы вызовете GetType на источнике данных, он вернет тип объекта (вы также можете сделать это в отладчике и изучить полученный там тип).

+0

Как узнать, используя отладчик и/или отражение? –

1

сначала его не связано с ответом, но вам не нужно использовать источник данных в этом случае (вы не используете свойство datamember). вы можете просто привязать его к коллекции напрямую. Тип коллекции может быть реализована в виде списка обязательных связующих элементов из сборки структуры сущности. возможно, вы не видите его имя, потому что его не публично, но приведение в IEnumerable должно работать. , если я правильно помню, что пользовательская реализация получается из BindingList, поэтому BindingList тоже в порядке.