WPF将元素的可见性绑定到具有特定值的附加属性的另一个元素

时间:2013-09-13 13:21:00

标签: wpf binding attached-properties

我有以下xaml代码:

<Window.Resources>
    <BooleanToVisibilityConverter x:Key="b2v" />
</Window.Resources>

我想将RichTextBox的可见性绑定到CheckBox的检查状态。

<RichTextBox Visibility="{Binding IsChecked,ElementName=chk,Converter={StaticResource b2v}}" />

到目前为止没问题。但问题是我的CheckBox没有Name属性(我不能给它起一个名字,因为它会随着时间的推移而被复制)。

由于我有CheckBox的附加属性

<CheckBox local:MyUIElementAttributes.AttachedElementType="TitleCheckbox"/>

现在我想使用这个附加属性来识别我的RichTextBox的可见性要绑定到的CheckBox。

我该怎么做?我必须绑定到附加属性,并且必须检查它的值以设置可见性。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望使用Attached Property的值作为Binding.ElementName属性的值。来自MSDN的Binding.ElementName Property页:

  

物业价值

     

Name属性的值或x:感兴趣元素的Name Directive。只有在通过RegisterName将相应的元素注册到相应的NameScope时,才可以引用代码中的元素。有关详细信息,请参阅WPF XAML Namescopes

读完这个和链接的页面之后,似乎好像你可以使用NameScope.RegisterName方法而不是设置Name属性。您应该然后能够在Binding.ElementName属性中引用使用此方法设置的名称而不会出现问题。

  

免责声明:我之前没有尝试过,可能错了。