Пользовательский контроль и DependencyProperty - PullRequest
1 голос
/ 22 июля 2009

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

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

Ответы [ 2 ]

0 голосов
/ 22 июля 2009

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

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

0 голосов
/ 22 июля 2009

Почему BindingList не совпадает? Это не так, как работает C #:

myControl1.List = list1;

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

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

...