2010-10-12 2 views
2

У меня есть несколько кнопок гиперссылки в приложении Silverlight 4. Когда я связываю свойство содержимого гиперссылки с моим классом VM, эффект зависания (подчеркивание и жирный шрифт) не отображается! Когда я удаляю привязку и набираю текст вручную, эффект зависания видится.
Почему я не вижу эффект зависания на кнопке гиперссылки, когда привязываю свойство Content к объекту VM?Отсутствует эффект наведения на привязанной гиперссылке

ответ

3

Это потому, что если я хорошо помню, эффект зависания достигается с помощью элемента TextBlock в шаблоне управления гиперссылкой. Когда вы наводите курсор на гиперссылку, этот текстовый блок отображается, иначе нет.

Свойство Text объекта TextBlock привязано к тому же источнику, что и свойство содержимого гиперссылки. Но в то время как свойство content имеет тип объекта, свойство Text для TextBlock имеет строку типа.

Тогда, если вы привязываете контент гиперссылки к тому, что не является текстом, привязка Textblock завершится неудачно, и эффект зависания не будет включен. Чтобы исправить проблему, привяжите свойство conten Hyperlink к строке или используйте BindingConverter для вывода строки из вашего нестрокового объекта.

+0

Когда я связываюсь с строковым свойством, он работает. Я использовал привязку к объекту и переопределял ToString(), который не работает, как вы описали. Большое спасибо! –

Смежные вопросы