C# 将可见性绑定到DependencyProperty

C# 将可见性绑定到DependencyProperty,c#,wpf,xaml,user-controls,C#,Wpf,Xaml,User Controls,我有一个dependency属性,允许我显示或隐藏我的UserControl上的close按钮。我没有得到编译错误,但是关闭按钮在下面的代码中永远不会消失,我遗漏了什么 呼叫使用: <Toolkit:UC_TitleBar ShowCloseButton="False"/> 用户控件内部的XAML: <UserControl ... x:Name="ucTitleBar"> <UserControl.Resources>     <ResourceDi

我有一个dependency属性,允许我显示或隐藏我的
UserControl
上的close按钮。我没有得到编译错误,但是关闭按钮在下面的代码中永远不会消失,我遗漏了什么

呼叫使用:

<Toolkit:UC_TitleBar ShowCloseButton="False"/>
用户控件内部的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,它将如您所期望的那样消失。

我认为您必须使用如下所示的元素名称绑定

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


如果这对您不起作用,请与我们共享您的代码。

在您使用可视性按钮的位置共享所有相关代码。所有可视性代码都是使用内置的
BooleantVisibilityConverter
转换器来完成的。它真的需要双向绑定吗?不,我只是尝试各种方式来让它工作。它只需要在
<Button Visibility="{Binding ElementName=userControl1,Path=ShowCloseButton, Mode=TwoWay, Converter={StaticResource BoolToVis}}" x:Name="Button_Close"/>