Привязка данных к пользовательскому элементу управления - PullRequest
0 голосов
/ 13 сентября 2010

У меня есть следующая ситуация в приложении C # Windows Forms (.NET 4.0):

У меня есть источник привязки, источник данных которого настроен на коллекцию объектов пользовательского класса.

Большинствосвойства этого класса могут быть представлены текстовым полем или флажком, поскольку они являются строками или числами или значениями типа bools.Тем не менее, есть одно свойство, называемое Ratings, которое является другим пользовательским объектом и должно быть представлено разработанным мной пользовательским элементом управления.

Я связал представление данных с источником привязки, и, очевидно, dgview отображает числа, строкии правильно кипит.Но в той же форме у меня также есть экземпляр пользовательского элемента управления, который я разработал, и поэтому я хочу сейчас привязать свой пользовательский элемент управления к тому же источнику привязки, который используется в datagridview, и к определенному элементу данных под названием Ratings.Но я не имею ни малейшего понятия о том, как начать.Я подозреваю, что должен реализовать некоторый интерфейс, который реализует DataSource и DataMember на моем элементе управления, но не уверен, с чего начать.Таким образом, в основном я хочу, чтобы каждый раз, когда выбранный элемент изменялся посредством выбора другой строки в сетке данных, соответствующее свойство Ratings представлено в пользовательском элементе управления.

Сейчас конечный результат, которого я хочу достичь,работает, но я делаю это, обновляя свой пользовательский элемент управления каждый раз, когда происходит событие OnSelectedRowChanged представления данных, и связывая свойство Ratings выбранного элемента с пользовательским элементом управления.

Но мне было интересно, смогу ли я достичьэто чисто механизмом привязки данных в .NET.

Спасибо за любые ответы!

Матье

пс: для дальнейшего разъяснения, поскольку в чистом виде это не кажется таким яснымtext:

Psuedo-код, представляющий объект, который я использую в качестве источника данных для источника привязки:

public class Car
{

   private string number;
   private string name;
   ...
   private Ratings ratings;


   public string Number
   {
     get { return this.number; }
     set { this.number = value; }
   }

   public string Name
   {
     get { return this.name; }
     set { this.name = value; }
   }

   ...

   public Ratings Ratings
   {
     get { return this.ratings; }
     set { this.ratings = value; }
   }

}

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

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

Я понял, что вы хотите иметь специальный столбец в DataGridView с вашим пользовательским элементом управления. Для этого вам нужно создать подкласс DataGridViewCell и DataGridViewColumn и реализовать IDataGridViewEditingControl.

См. MSDN для примера.

0 голосов
/ 13 сентября 2010

Вы можете прочитать эту статью Microsoft об интерфейсах, связанных с привязкой данных . Те, что вас интересуют, находятся внизу в разделе «Интерфейсы для реализации авторами компонентов».

...