я следующая ситуация в C# Windows Forms (.NET 4.0) применение:Databinding для пользовательского элемента управления
У меня есть BindingSource, который DataSource установлен в коллекцию объектов пользовательского класса.
Большинство свойств этого класса может быть предоставлено с помощью текстового поля или флажка, так как они являются строками или цифрами. Однако есть одно свойство, называемое Ratings, которое является другим настраиваемым объектом и должно быть представлено настраиваемым элементом управления, который я разработал.
Я связал datagridview с источником bindings, и, очевидно, dgview правильно отображает числа, строки и bools. Но в той же форме у меня также есть экземпляр настраиваемого элемента управления, который я разработал, и поэтому хочу, чтобы я теперь хотел сделать привязку своего настраиваемого элемента управления к тому же связующему источнику, что и datagridview, и к определенному datamember под названием Ratings. Но я не имею ни малейшего понятия о том, как начать. Я подозреваю, что должен реализовать некоторый интерфейс, который реализует DataSource и DataMember, но не знаю, с чего начать. Таким образом, в основном, что я хочу, каждый раз, когда выбранный элемент изменяется с помощью выбора другой строки в datagridview, соответствующее свойство Ratings представлено в пользовательском элементе управления.
В настоящее время конечный результат, который я хочу достичь, работает, но я делаю это, обновляя свой настраиваемый элемент управления каждый раз, когда запускается событие OnSelectedRowChanged для datagridview и сопоставляет свойство Ratings выбранного элемента с настраиваемым элементом управления.
Но мне было интересно, могу ли я достичь этого чисто механизмом привязки данных в .NET.
Спасибо за любые ответы!
Матье
пс: для дальнейшего уточнения, как представляется, не так ясно в чистом тексте:
псевдопользователей-код, представляющий объект, который я использую в качестве источника данных для BindingSource является:
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; }
}
}
Так что я хочу, чтобы все свойства string и number из bindingsource связывались с datagridview, но мне нужно свойство Ratings для привязки к настраиваемому элементу управления.
Нет, извините, если не было ясно. Это не специальный столбец в DataGridView, который я хочу. У меня есть совершенно отдельный пользовательский элемент управления, который я использую для представления свойства Ratings. Ничего общего с DataGridView. В основном я хочу, чтобы все свойства объекта привязывались к DataGridView (что сейчас имеет место), за исключением свойства Ratings, которое необходимо связать с пользовательским элементом управления. – tjeuten
Я разместил код в своем вопросе, чтобы сделать его более ясным. – tjeuten
Итак, у вас есть подробная форма, в которой вы хотите показать рейтинги, и хотите, чтобы текущий элемент сетки отображал свои оценки в этом настраиваемом элементе управления? – Timores