@Martin - haben Sie versucht, den FallbackValue in Ihrer Bindung zu setzen?
Ich habe den VS nicht zur Hand, um es zu überprüfen, aber ich denke, dass, wenn Ihr Setup ist wie (sorry für "Fehler", das ist nur ein Entwurf:
<rectangle visibility={Binding mydata.somthing.someVisibilityProperty} />
dann, wenn die Bindung bei Loaded, Ihr Steuerelement kann "blinken" mit dem Standardwert Visibility.Visible. Ihre Bindung schlägt beim ersten Rendering fehl, weil noch keine Daten gebunden sind. Wenn ja, dann richten Sie einfach den Fallbackvalue ein:
<rectangle visibility={Binding mydata.somthing.someVisibilityProperty, FallbackValue=Collapsed} />
Dies führt dazu, dass die Bindung "Visibility.Collapsed" zurückgibt, wenn sie nicht aus der Quelle lesen kann.
Im Falle von
<Rectangle Visibility="{Binding TipRoundingHasError, Converter={StaticResource VisibilityConverter}}">
die Sie in Ihrer zweiten Antwort dargelegt haben, würde dies im Wesentlichen so aussehen:
<Rectangle Visibility="{Binding TipRoundingHasError, FallbackValue=DEFAULTVALUE, Converter={StaticResource VisibilityConverter}}">
aber ich erinnere mich jetzt nicht, ob Ihr Konverter auf den FallbackValue aufgerufen wird oder nicht. Das bedeutet, dass ich Ihnen jetzt nicht sagen kann, ob Sie DEFAULTVALUE durch "Collapsed" oder eher durch "False" ersetzen sollten. Aber ich denke, Sie werden das Richtige im Handumdrehen testen und auswählen.
Weitere Beispiele für Fallback finden Sie in der BindingBase.FallbackValue - gibt es ein schönes Beispiel mit einer benutzerdefinierten Bindungsklasse (ja, nicht nur Konverter können benutzerdefiniert sein:) )