Пользовательский элемент управления и DependencyProperty

Я создал настраиваемый элемент управления, который внутри использует BindingList для отслеживания объектов Account, отображаемых в некоторой пользовательской сетке. Я хочу добавить DependencyProperty к моему элементу управления, который будет отображать набор/получение для списка, что позволит мне использовать двустороннюю привязку между моим элементом управления и моделью данных. Я хочу иметь возможность установить этот список для инициализации моего элемента управления и получать обновления, полученные в результате обновлений BindingList. Короче говоря, мне нужно как-то обеспечить перевод между списком из DependencyProperty и моим внутренним BindingList и наоборот (в зависимости от того, изначально ли мой элемент управления связан с источником данных, или источник данных обновляется на основе изменений в BindingList в моем элементе управления).

Примеры, которые я нашел в Интернете, касаются элементов управления, работающих непосредственно со списками, установленными в DependencyProperties. В моем случае я хочу иметь уровень косвенности, поскольку BindingList не обязательно совпадает со списком из DependencyProperty.


person Community    schedule 22.07.2009    source источник
comment
не могли бы вы привести нам пример?   -  person Bogdan Maxim    schedule 22.07.2009


Ответы (2)


Почему BindingList не то же самое? С# работает не так:

myControl1.List = list1;

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

В то время как вы можете создать забавную логику в сеттере общего простого класса C #, DependencyProperty является предопределенной концепцией, и вы не сможете отвлечься от здравомыслия.

person Oleg Mihailik    schedule 22.07.2009

BindingList, который я использую внутри, отличается от списка в DependencyProperty, который я пытаюсь предоставить, потому что я не хочу предоставлять внутреннюю реализацию внешнему свойству.

В сложных элементах управления может быть несколько сеток и т. д., которые должны иметь свои собственные BindingList для хранения данных. My DependencyProperty должен использоваться для: 1) инициализации пользовательского элемента управления некоторыми данными 2) установки нового списка на основе пользовательского ввода обратно в модель.

person Community    schedule 22.07.2009