WPF - 我可以阻止用户控件暴露其命名子元素?
-
19-08-2019 - |
题
这是一个有点noob问题,但我刚刚意识到,如果我创建了一个用户控件,并选择一些命名的子元素一拉 -
<UserControl x:Class="UserControls.uControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="300">
<Grid x:Name="maingrid">
</Grid>
然后我可以引用在消耗XAML的代码隐藏的命名元素。因此,对于上面的例子可以写
uControl.mainGrid = new Grid();
我很好奇,为什么是这样的话,更重要的是,我怎么能安全地封装这些控件。
和往常一样,任何帮助,将真正理解。
解决方案
您需要的是 x:FieldModifier
属性:
<UserControl x:Class="UserControls.uControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="300" Height="300">
<Grid x:Name="maingrid" x:FieldModifier="private">
</Grid>
</UserControl>
默认为的内部下,由于某种原因。你可以阅读更多关于它这里一>
不隶属于 StackOverflow