0

我有一个依赖属性,允许我在UserControl. 我没有编译错误,但关闭按钮永远不会随着以下代码消失,我错过了什么?

调用使用:

<Toolkit:UC_TitleBar ShowCloseButton="False"/>

.cs 代码

public static readonly DependencyProperty ShowCloseButtonProperty = 
    DependencyProperty.Register("ShowCloseButton", 
    typeof(Boolean), 
    typeof(UC_TitleBar), 
    new FrameworkPropertyMetadata(false));

public bool ShowCloseButton
{
    get { return (bool)GetValue(ShowCloseButtonProperty); }
    set { SetValue(ShowCloseButtonProperty, value); }
}

用户控件中的 XAML:

<UserControl ... x:Name="ucTitleBar">
<UserControl.Resources>
    <ResourceDictionary>
        <BooleanToVisibilityConverter x:Key="BoolToVis" />
    </ResourceDictionary>
</UserControl.Resources>

<Button Visibility="{Binding Path=ShowCloseButton, ElementName=ucTitleBar, Converter={StaticResource BoolToVis}}" x:Name="Button_Close"/>

如果我在构造函数中手动设置ShowCloseButton为 false,它会像您期望的那样消失。

4

1 回答 1

2

我认为你必须使用元素名称绑定,如下所示。

<Button Visibility="{Binding ElementName=userControl1,Path=ShowCloseButton, Mode=TwoWay, Converter={StaticResource BoolToVis}}" x:Name="Button_Close"/>

如果这不适合您,请与我们分享您的代码。

于 2013-03-22T10:25:51.660 回答