2009-07-22 3 views
1

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

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

+0

Не могли бы вы привести нам пример? –

ответ

0

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

myControl1.List = list1; 

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

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

0

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

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