Почему BooleanToVisibilityConverter, по-видимому, возвращает «скрытый» (а не «свернутый») при передаче DependencyProperty.UnsetValue? - PullRequest
0 голосов
/ 15 июня 2011

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

Я сталкиваюсь с проблемой, когда результирующий вид моего документа действует как встроенный BooleanToVisibilityConverter, возвращающий «Скрытый» в этой ситуации.Я ожидал, что это будет действовать, как если бы false было переданным значением. Я даже не знал, что «Скрытый» был возможный результат, и ничего подобного не упоминается в MS документах .

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

1 Ответ

0 голосов
/ 15 июня 2011

BooleanToVisibilityConverter возвращает Visibility.Если вы обратитесь к документации , вы обнаружите, что Hidden является допустимым значением.Привязка, которая приводит к DependencyProperty.UnsetValue, не будет пытаться преобразовать это значение через связанный с ней преобразователь.Он эффективно отключает привязку, т. Е. Должен иметь тот же результат, как если бы привязка вообще не присутствовала.

В этом случае ваше значение Hidden будет поступать откуда-то еще.Чтобы понять механизм определения значения свойства зависимости, посмотрите документацию относительно приоритет свойства зависимости .В вашем случае это, скорее всего, наследуемое значение или значение по умолчанию (но это только предположение!)

...