Передайте команду кнопки WPF через UserControl - PullRequest
0 голосов
/ 22 февраля 2010

Я создал WPF UserControl, который содержит кнопку. Теперь я хочу, чтобы любой пользователь usercontrol мог установить свойство Command для usercontrol и назначить эту команду кнопке в элементе управления. то есть, чтобы при нажатии кнопки она выполняла команду (в данном случае - Prism DelegateCommand).

Итак, мой UserControl выглядит так:

<UserControl>
  <Button ...>
</UserControl>

и мой потребитель, я хочу выглядеть так:

<controls:ThreeStateImageButtonControl
   Command="..." />

Ответы [ 2 ]

4 голосов
/ 22 февраля 2010

Да ладно, мужик! Это WPF. Идея состоит в том, чтобы держаться подальше от пользовательских и пользовательских элементов управления, это старый способ работы Windows Forms. Здесь лучше всего использовать шаблоны WPF и функции WPF без внешнего вида, чтобы стилизовать элемент управления с помощью контейнера и поведения, которое вам нравится. Тогда вам не нужно беспокоиться о прохождении функций Click или Command, поскольку они уже есть. Вместо того, чтобы оборачивать элемент управления в другие элементы и делать его пользовательским элементом управления, просто стилизуйте свой элемент управления с другими элементами.

3 голосов
/ 22 февраля 2010

Вам необходимо создать свойство зависимости для Command на вашем элементе управления, а затем создать обработчик события для события Click кнопки для выполнения Command. Затем пользователи могут связываться с Командой. Возможно, вам поможет веб-учебник или документация? Может быть, Google "Свойство зависимости WPF от руководства пользователя" или что-то в этом роде.

Однако я не уверен, что вы поступаете правильно. Если в вашем пользовательском элементе управления нет ничего, кроме Button, вы можете рассмотреть пользовательский элемент управления, который наследуется от Button; реализация была бы проще, и пользователи могли бы просто использовать событие Click обычным способом. Во многих местах в Интернете также есть обучающие руководства по WPF.

Кстати, ваша собственность фактически не будет называться Command, верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...