当我在WPF中创建用户控件时,似乎该控件的所有子控件都被声明为内部控件?我无法验证这一点,也没有找到任何资源来讨论这个问题。
我可以访问同一程序集中的控件,但不能访问引用用户控件所在程序集的项目。有没有办法覆盖XAML中子控件的默认访问修饰符,所以我不必手动通过用户控件中的属性公开控件?
答案 0 :(得分:9)
您是否尝试将子控件的x:FieldModifier
属性设置为“public
”?
答案 1 :(得分:1)
然而,仅仅公开它们并不是一个好主意 - 它的设计非常糟糕。
您应该通过UserControl的属性公开他们的真实数据。最好的方法是引入一个界面。
另一个解决方案(更多的是“WPF-way”)将使用数据上下文作为从外部访问的唯一属性:控件可以绑定到他们需要的属性。