C# 更改用户控件中的可见性
我有一个带按钮的用户控件C# 更改用户控件中的可见性,c#,user-controls,winrt-xaml,C#,User Controls,Winrt Xaml,我有一个带按钮的用户控件 <Button Content="Button" x:Name="button"/> 我在另一个页面中使用此userControl 积垢 <UC:MyUC x:Name="objectForm" /> 是否可以从积垢页的代码隐藏处修改此按钮的可视性?在用户控件中创建denedencroperty: public static DependencyProperty ButtonVisibilityProperty = Dependency
<Button Content="Button" x:Name="button"/>
我在另一个页面中使用此userControl
积垢
<UC:MyUC x:Name="objectForm" />
是否可以从积垢页的代码隐藏处修改此按钮的可视性?在
用户控件中创建denedencroperty
:
public static DependencyProperty ButtonVisibilityProperty = DependencyProperty.Register("ButtonVisibility", typeof(Visibility), typeof(MyUserControl), null);
public Visibility ButtonVisibility
{
get { return (Visibility)GetValue(ButtonVisibilityProperty); }
set { SetValue(ButtonVisibilityProperty, value); }
}
将其绑定到按钮。可见性:
<Button
Visibility="{Binding ElementName=userControl, Path=ButtonVisibility}"
Content="Button"
x:Name="button"/>
您应该能够从外部控制按钮的可见性
,如下所示:
<local:MyUserControl ButtonVisibility="Collapsed"/>
在您的usercontrol上公开一个属性,该属性将设置/取消设置按钮的可见性I'm pretty noob…如何设置?请看从dkoziDependencyProperty获得的答案。Register需要4个参数。。。我添加了新的PropertyMetadata(“”)。。。但是它不起作用,我已经从按钮中删除了elementName,它可以工作。很抱歉,在WPF中有3个参数的重载,在您的例子中,null
作为第4个参数应该可以。我已经更新了我的答案,这取决于你里面有多少按钮<代码>按钮。单击
已经是冒泡事件,因此您可以直接在UserControl
上捕获它,而无需附加代码
<UserControl ... x:Name="userControl">
<local:MyUserControl ButtonVisibility="Collapsed"/>