将WPF UserControl引用传递给另一个UserControl

时间:2010-04-20 13:51:48

标签: .net wpf user-controls

我创建了两个UserControls,一个ValidationManager和一个ValidationOutput。在给定的表单上有一个ValidationManager和几个ValidationOutput控件,每个控件都有一个用于验证。在提交表单时,ValidationManager会给出一个验证错误列表,我希望每个ValidationOutput控件查看此列表,看看是否存在与它们相关的任何错误。

代码看起来有点像这样:

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

我需要将ValidationManager的引用传递给每个ValidationOutput控件。我已将ValidationManager属性添加到ValidationOutput UserControl,但不知道如何将引用传递给控件。我尝试了以下但是只是抓着吸管:

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

第一个导致错误“未找到属性'ValidationManager'或者'ValidationOutput'类型不可序列化”,并且无法在'ValidationControl'类型的'ValidationManager'属性上设置第二个“A'Binding'。 '绑定'只能在DependencyObject的DependencyProperty上设置。“

1 个答案:

答案 0 :(得分:1)

应该可以使用StaticResource将ValidationManager分配给您的属性:

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

然而,这个设计对我来说似乎很奇怪。也许你应该更好地使用MVVM,正如Rich在他的评论中指出的那样。