我有以下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。
我该怎么做?我必须绑定到附加属性,并且必须检查它的值以设置可见性。
谢谢!
答案 0 :(得分:0)
如果我理解正确,您希望使用Attached Property
的值作为Binding.ElementName
属性的值。来自MSDN的Binding.ElementName Property
页:
物业价值
Name属性的值或x:感兴趣元素的Name Directive。只有在通过RegisterName将相应的元素注册到相应的NameScope时,才可以引用代码中的元素。有关详细信息,请参阅WPF XAML Namescopes。
读完这个和链接的页面之后,似乎好像你可以使用NameScope.RegisterName
方法而不是设置Name
属性。您应该然后能够在Binding.ElementName
属性中引用使用此方法设置的名称而不会出现问题。
免责声明:我之前没有尝试过,可能错了。