WPF - Пользовательская привязка DataGrid - Список пользовательских объектов с динамическим числом свойств - C # - PullRequest
0 голосов
/ 09 ноября 2010

Используя панель Linq, я создал представление данных в базе данных, которые теперь надеюсь воспроизвести в приложении WPF.

Я воспользовался методом Linq Dump().Реализуя ICustomMemberProvider, я мог бы предоставить заголовки столбцов, типы и значения, которые я хотел бы вывести.Три метода, которые мне нужно было реализовать:

   public IEnumerable<string> GetNames() 
   public IEnumerable<Type> GetTypes()
   public IEnumerable<object> GetValues()

Это был простой, быстрый и понятный способ описания того, каким должно быть Dump() 'для одной или нескольких строк.

ДляЯ не могу найти ничего такого прямолинейного в WPF.У меня есть динамическое (за цикл, а не за ряд) число столбцов, и поэтому я не могу жестко закодировать заголовки столбцов и пути привязки, может быть 5 столбцов и может быть 20.

Я был указан в направлении ICustomTypeDescriptor но мне нужен конкретный пример того, как это будет работать, поскольку в этом интерфейсе так много методов.

Я действительно надеюсь, что есть что-то более простое, что я пропустил, что позволит мнечтобы динамически реализовать то, что должны содержать строки и столбцы, учитывая IEnumerable моего пользовательского класса.

Будем весьма благодарны за любые ссылки на учебное пособие или обзор того, как это должно работать.Я был удивлен отсутствием документации, которую я нашел, поэтому я должен использовать неправильные термины.

Для ясности источник единственной строки является экземпляром такого класса;

public class CustomDatum 
{
   public string ID {get; private set;}
   public string Location {get; private set;}

   public IEnumerable<Attributes> attributes {get; private set;}

   public class Attribute 
   {
       public string Name {get; private set;}
       public string Value {get; private set;}

       public override ToString()
       {
           ....
       }
   }
}

Я хочу отобразить идентификатор, местоположение и все атрибуты в одной строке, у меня есть IEnumerable<CustomDatum> для привязки.Фактически, класс намного сложнее, чем этот пример.

Спасибо!

1 Ответ

1 голос
/ 09 ноября 2010

Я уверен, что вы можете использовать DataGridView и установить для AutoGenerateColumns значение true.

пример из ICustomTypeDescriptor

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