1

我有以下 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。

我怎样才能做到这一点?我必须绑定到附加属性,并且必须检查该属性的值以设置可见性。

谢谢!

4

1 回答 1

0

如果我对您的理解正确,您想将您Attached Property的价值用作Binding.ElementName财产的价值。从Binding.ElementName PropertyMSDN 的页面:

适当的价值

感兴趣元素的 Name 属性或 x:Name 指令的值。只有通过 RegisterName 将元素注册到适当的 NameScope 时,才能引用代码中的元素。有关详细信息,请参阅WPF XAML 名称范围

阅读此内容和链接页面后,您似乎可以使用该NameScope.RegisterName方法而不是设置Name属性。然后,您应该能够Binding.ElementName毫无问题地在属性中引用使用此方法设置的名称。

免责声明:我以前没有尝试过,可能会出错。

于 2013-09-13T13:39:57.730 回答