WPF привязывает видимость элемента к другому элементу с прикрепленным свойством определенного значения

У меня есть следующий код 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"/>

Теперь я хотел бы использовать это прикрепленное свойство для идентификации CheckBox, с которым должна быть связана видимость моего RichTextBox.

Как я могу это сделать? Я должен привязаться к прикрепленному свойству и проверить его значение, чтобы установить видимость.

Благодарю вас!


person manton    schedule 13.09.2013    source источник


Ответы (1)


Если я вас правильно понял, вы хотите использовать значение вашего Attached Property в качестве значения свойства Binding.ElementName. Со страницы Binding.ElementName Property в MSDN :

Значение свойства

Значение свойства Name или директива x:Name интересующего элемента. Вы можете ссылаться на элементы в коде, только если они зарегистрированы в соответствующем NameScope через RegisterName. Дополнительные сведения см. в разделе Области имен WPF XAML.

Прочитав это и связанную страницу, кажется, что вы можете использовать метод NameScope.RegisterName вместо установки свойства Name. Затем вы должны без проблем ссылаться на имя, установленное с помощью этого метода, в свойстве Binding.ElementName.

Отказ от ответственности: я не пробовал это раньше и мог ошибаться.

person Sheridan    schedule 13.09.2013