2009-12-14 107 views
3

当我在WPF中创建一个用户控件时,看起来这个控件的所有子控件都被声明为内部控件?我无法验证这一点,也没有找到任何资源来讨论这个问题。由于访问修饰符无法访问儿童控件

我可以访问相同程序集中的控件,但不能访问引用用户控件所在程序集的项目。有没有办法在XAML中覆盖子控件的默认访问修饰符,所以我不需要通过用户控件中的属性手动公开控件?

回答

9

您是否试图将子控件的x:FieldModifier属性设置为“public”?

+0

工作就像一个魅力。 – 2009-12-15 23:16:02

1

但是,只是把它们公诸于众,不是一个好主意 - 它的设计非常糟糕。

你应该通过你的UserControl的属性公开他们的真实数据。最好的事情是引入一个接口。

另一种解决方案(更多的“WPF方式”)将使用数据上下文作为从外部访问的唯一属性:控件可以绑定到他们需要的属性。