2013-07-21 3 views
0

У меня есть TextBox в Silverlight 5, где я устанавливаю значение Text из Code. Когда видимость текстового поля видима, он отключит событие TextChanged, но как только вы установите его на Collapsed, он больше не запускается.Silverlight Текстовое поле не срабатывает TextChanged when Collapsed

У кого-нибудь есть опыт? Я нашел 1 site, где кто-то также испытал эту проблему, но на нее никогда не отвечали.

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

Благодаря

ответ

0

События не стрелять, если видимость элемента управления устанавливается в Рухнул. И в Silverlight нет скрытой видимости. Но вы можете установить Opacity = 0, чтобы сделать его скрытым. Вы также хотите установить IsHitTestVisible в false на элемент, который вы установили Opacity = 0, иначе пользователь все равно сможет нажать на него, даже если они означают для щелчка на каком-то базовом элементе. Событие будет срабатывать тогда.

<TextBox TextChanged="textBox1_TextChanged" x:Name="txt" Opacity="0" IsHitTestVisible="False"/> 

Или вы должны уволить его явно.

+0

Спасибо, что имеет смысл, я сумел реализовать совершенно другое решение, чтобы сделать его более надежным и не использовать хак. Я буду держать этот метод в виду, хотя и взглянуть на использование этого вместо того, где-то вниз по линии, когда позволяет время. Цените помощь :) – Storm

0

Если я не ошибаюсь, на самом деле изготовление IsHitTestVisible="False" подразумевает, что событие TextChanged не уволено.

Так Opacity="0" вместо Collapsed видимости это все, что нужно (вы также можете сделать TextBox крошечный размер, чтобы дополнительно убедиться, что он никогда не попал :)

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