我有一个UserControl(我们称之为“CustomControl”),它充当网格的简单工具栏。它只包含一个用于打开/关闭的按钮(它只是更改它的可见性属性)一个网格。
像这样:
<UserControl ....>
...
<Grid>
<Button x:Name="btChangeState" Content="Change State" />
</Grid>
....
</UserControl>
我已经声明了Grid的DependencyProperty,如下所示:
public Grid MyContent
{
get { return (Grid)GetValue(MyContentProperty); }
set { SetValue(MyContentProperty, value); }
}
public static readonly DependencyProperty MyContentProperty =
DependencyProperty.Register("MyContent", typeof(Grid), typeof(MyControl), new PropertyMetadata(null));
我的用户控制按钮有一个简单的处理程序来更改“MyContent”网格可见或折叠:
if (MyContent.Visibility == Windows.UI.Xaml.Visibility.Visible)
MyContent.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
else
MyContent.Visibility = Windows.UI.Xaml.Visibility.Visible;
在我的ViewPage上,我能够在Page的构造函数中将theUserControl.MyContent连接到theGrid,但是我怎样才能在XAML中执行此操作?我想做这样的事情:
<Page .....>
<StackPanel Orientation="Vertical">
<cs:CustomControl x:Name="theUserControl" MyContent="{Binding theGrid}" />
<Grid x:Name="theGrid" Height="200" Width="200" Background="Red" />
</StackPanel>
</Page>
有可能吗?
答案 0 :(得分:1)
您需要使用ElementName
:
<cs:CustomControl x:Name="theUserControl" MyContent="{Binding ElementName=theGrid}" />