@ Мартин - вы пытались установить FallbackValue в вашей привязке?
У меня нет VS, чтобы проверить его, но я думаю, что если ваша установка похожа (извините за 'ошибки', это всего лишь черновик:
<rectangle visibility={Binding mydata.somthing.someVisibilityProperty} />
тогда, если привязка в Loaded, ваш элемент управления может «мигать» со значением Visibility.Visible по умолчанию. Ваша привязка завершается неудачно при первом рендеринге, потому что еще нет привязки данных. Если это так, то просто установите значение возврата:
<rectangle visibility={Binding mydata.somthing.someVisibilityProperty, FallbackValue=Collapsed} />
это приведет к тому, что привязка будет возвращать «Visibility.Collapsed» всякий раз, когда ей не удается прочитать из источника.
В случае
<Rectangle Visibility="{Binding TipRoundingHasError, Converter={StaticResource VisibilityConverter}}">
, который вы представили во втором ответе, он в основном будет выглядеть так:
<Rectangle Visibility="{Binding TipRoundingHasError, FallbackValue=DEFAULTVALUE, Converter={StaticResource VisibilityConverter}}">
но я не помню сейчас, будет ли ваш конвертер вызываться в FallbackValue или нет. Это означает, что я не могу вам сейчас сказать, следует ли вам заменить DEFAULTVALUE на «Collapsed» или, скорее, на «False». Но я думаю, вы сразу же протестируете и выберете правильный.
Чтобы узнать больше о Fallback, попробуйте взглянуть на BindingBase.FallbackValue - есть хороший пример с настраиваемым классом привязки (да, не только преобразователи могут быть пользовательскими :))