C# 如果在WPF中有一个Rect图形';是空的吗?

C# 如果在WPF中有一个Rect图形';是空的吗?,c#,wpf,binding,drawing,C#,Wpf,Binding,Drawing,这感觉应该是非常简单的事情,但我不能让它工作 我在上有一个,其中上的DataContext绑定到Rect,我试图用属性画布绘制它。Left=“{Binding Left}”和Width=“{Binding Width}(与垂直组件类似) 如果有一个矩形,这很好,但是在绑定的Rect为空的情况下(即,IsEmpty==True),它会给我很多由BindingExpression生成的值对于具有无限值的目标属性错误无效 我尝试过使用IsEmpty属性上的数据触发器将可见性设置为折叠,我尝试过在父画布

这感觉应该是非常简单的事情,但我不能让它工作

我在
上有一个
,其中
上的
DataContext
绑定到
Rect
,我试图用
属性
画布绘制它。Left=“{Binding Left}”
Width=“{Binding Width}
(与垂直组件类似)

如果有一个矩形,这很好,但是在绑定的
Rect
为空的情况下(即,
IsEmpty==True
),它会给我很多由BindingExpression生成的
值对于具有无限值的目标属性
错误无效

我尝试过使用
IsEmpty
属性上的数据触发器将
可见性设置为
折叠
,我尝试过在父画布上执行相同的操作,但无论我做什么,仍然会出现这些绑定表达式错误


有没有办法简单地让它“如果它是空的,甚至不要尝试画这个”?

我想我解决了类似的问题,比如:

<Rectangle Canvas.Left="{Binding Left}"
       Canvas.Top="{Binding Top}">
    <Rectangle.Style>
        <Style TargetType="{x:Type Rectangle}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsEmpty}" Value="True">
                    <Setter Property="Canvas.Left" Value="0"/>
                    <Setter Property="Canvas.Top" Value="0"/>
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>             
            </Style.Triggers>
        </Style> 
    </Rectangle.Style>
</Rectangle>

因此,基本上是“破坏”对无效
DataContext
值的绑定,并在XAML中设置一个固定值

注意:这是手写的XAML,可能包含语法错误


是相对于画布的绑定错误。左属性还是宽度属性?两者都有。还有垂直线。我每次都会遇到四个错误。我认为可以使用一个转换器,当rect的属性无效时,它返回零。或者尝试一下答案,它看起来不错。实际上我是以另一种方式做的——我检查绑定是否为假,如果为假,则设置位置/尺寸。谢谢