我们通常能够清除所有这些绑定(bind)错误,但有一个特别狡猾的错误我们无法修复(基本上我们将一个对象设置为 null,该对象是 Rectangle.Fill 属性的 DataContext),所以我们认为设置 FallBackValue 会让它消失,但我们仍然收到绑定(bind)错误:
System.Windows.Data Error: 6 : 'TargetDefaultValueConverter' converter failed to convert value '' (type 'String'); fallback value will be used, if available.
有没有办法在使用后备值时不出现这些错误?我的意思是,这就是它的目的,不是吗?为什么它仍然显示错误?
这是绑定(bind):
<Rectangle x:Name="rectangle" Fill="{Binding Mode=OneTime, TargetNullValue={StaticResource someBrush}}" Height="23" Margin="0,1.5,0,1.5" Width="100" />
嗯嗯,谢谢!
最佳答案
有了这个
<Grid>
<Grid.Resources>
<SolidColorBrush Color="Red" x:Key="Fallback"/>
<SolidColorBrush Color="Blue" x:Key="Null"/>
</Grid.Resources>
<Rectangle Fill="{Binding Mode=OneTime, TargetNullValue={StaticResource Null}, FallbackValue={StaticResource Fallback}}"/>
</Grid>
如果我设置 DataContext = null,我会得到一个蓝色矩形, 如果我设置 DataContext = Brushes.Yellow,我会得到一个黄色矩形。并且没有绑定(bind)错误。
关于wpf - 避免输出窗口中的绑定(bind)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540826/