2012-03-02 85 views
1

我们通常能够清除所有这些绑定错误,但还有一个我们无法修复的特别偷偷摸摸的错误(基本上我们将对象设置为null,并且该对象是DataContext for a Rectangle.Fill属性),因此我们认为设置FallBackValue会让它消失,但我们还是得到了绑定错误:避免在输出窗口中出现绑定错误

System.Windows.Data Error: 6 : 'TargetDefaultValueConverter' converter failed to convert value '' (type 'String'); fallback value will be used, if available. 

有没有办法使用回退值时,没有得到这些错误?我的意思是,这就是它不是吗?为什么它仍然显示错误?

这是绑定:

<Rectangle x:Name="rectangle" Fill="{Binding Mode=OneTime, TargetNullValue={StaticResource someBrush}}" Height="23" Margin="0,1.5,0,1.5" Width="100" /> 

LMK,谢谢!

+0

绑定中没有路径。 – Phil 2012-03-02 22:42:41

+1

@Phil这是因为它的数据上下文是一个笔刷。 – Carlo 2012-03-02 23:05:34

回答

2

有了这个

<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,我得到一个黄色的矩形。并没有绑定错误。

+0

它似乎解决了这个问题。让我把它展示给我的同事,我会让你知道。谢谢! – Carlo 2012-03-02 23:14:54