Передать ссылку WPF UserControl другому UserControl - PullRequest
0 голосов
/ 20 апреля 2010

Я создал два элемента UserControls, ValidationManager и ValidationOutput. В данной форме есть один ValidationManager и несколько элементов управления ValidationOutput, по одному для каждого проверяемого элемента управления. При отправке формы ValidationManager предоставляется список ошибок проверки, я хочу, чтобы каждый элемент управления ValidationOutput просматривал этот список и проверял, есть ли какие-либо ошибки, относящиеся к ним.

Код выглядит примерно так:

<r:ValidationManager x:Name="myValidationManager" />
...
<TextBox Name="SomeField" />
<r:ValidationOutput FieldName="SomeField" />

Мне нужно передать ссылку на ValidationManager каждому из элементов управления ValidationOutput. Я добавил свойство ValidationManager в UserControl ValidationOutput, но не знаю, как передать ссылку на элемент управления. Я попробовал следующее, но просто хватаюсь за соломинку:

<r:ValidationOutput ValidationManager="myValidationManager" />
...and...
<r:ValidationOutput ValidationManager="{Binding myValidationManager}" />

Первое приводит к ошибке «Свойство« ValidationManager »не найдено или не сериализуемо для типа« ValidationOutput »», а второе «Невозможно установить привязку» для свойства «ValidationManager» типа «ValidationControl». «Связывание» может быть установлено только для свойства DependencyObject объекта Dependency. »*

1 Ответ

1 голос
/ 20 апреля 2010

Должно быть возможно использовать StaticResource для назначения ValidationManager вашим свойствам:

<r:ValidationOutput ValidationManager="{StaticResource myValidationManager}" />

Однако дизайн мне кажется странным. Возможно, вам лучше использовать MVVM, как указал Рич в своем комментарии.

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