Лучший подход для создания базового контроля - PullRequest
1 голос
/ 09 апреля 2010

Я ищу решение для этого сценария -

Мне нужно реализовать функцию, позволяющую пользователю добавлять различные элементы управления в canvas (WPF, пользовательские и сторонние), а затем выбирать любое из них и изменять некоторые свойства в PropertyGrid (изменения должны отражаться в UI).

Я не хочу раскрывать все свойства какого-либо элемента управления, только некоторые из них (относящиеся к конечному пользователю); кроме этого есть некоторые свойства, которые будут общими для всех элементов управления, например Заголовок, Значение (Значение будет связано с некоторым свойством элемента управления, скажем, Текст TextBox и Содержание Label) и т. Д.

Я собираюсь собрать все общие свойства в одном месте.

Вещи, которые меня смущают -

  1. Как создать такой базовый класс, использовать для этого UserControl или пользовательский элемент управления?

  2. Как будет работать привязка между Control, свойствами базового класса и PropertyGrid?

  3. Какой тип объекта я буду выставлять PropertyGrid?

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

1 Ответ

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

Возможно, вам следует начать с этой книги Разработка управления WPF развернута .

1) Пользовательский контроль должен быть более подходящим.
2) Для привязки - вы должны узнать больше о TemplateBinding, RelativeSources привязке и т. Д.,
3) Ваша собственность может быть обычной или зависимой собственностью. Оба из них будут доступны для редактирования в сетке свойств. Если ваше выставленное свойство является привязываемым, очевидно, оно должно быть dp. Если вы выставите свойство (имеется в виду свойство со спецификатором открытого доступа), этого будет достаточно, чтобы оно было доступно в сетке свойств.

НТН

...