wpf可见性问题

时间:2010-10-19 10:06:52

标签: wpf wpf-4.0

默认可见性枚举包含

Collapsed
Hidden
Visible

我需要另一个名字NotCreatable。将Visibility设置为Notcreatable时,不能在视图级别创建当前元素。

因为我有两个来自A

的类继承
public Class B:A
{ Property B1;}
public Class C:A
{ Property C1;}

我的xaml

<stackpanel DataContext="{Binding objectA}">
    <stackpanel Visiblity="{Binding isB,Converter={StaticResource Bool2Visible}}">
        <textbox text="{Binding B1}"/>
    </stackpanel>
    <Grid Visiblity="{Binding isC,Converter={StaticResource Bool2Visible}}">
        <ItemsControl Itemssource="{Binding C1}"/>
    </Grid>
</stackpanel>

有时objectA是B,有时objectA是C.但我的问题是当isC == true时, 第一个Stackpanel成功隐藏。但绑定工作。显示以下错误 System.Windows.Data Error: 40 : BindingExpression path error: 'B1' property not found on 'object' 'C'

1 个答案:

答案 0 :(得分:0)

即使对象已折叠,绑定也可能正在执行。也许您应该使用转换器进行绑定?

<stackpanel DataContext="{Binding objectA}"> 
    <stackpanel> 
        <textbox text="{Binding objectA,Converter={StaticResource MyPropertyPicker}}"/> 
    </stackpanel> 
</stackpanel> 

然后让MyPropertyPicker转换器选择要绑定的属性?