有条件地创建控件 - 绑定

时间:2015-01-18 20:19:26

标签: wpf binding interface

<Page>  
                <local:AControl Visibility="{Binding ElementName=SendPushWindow,Path=DataContext.SelectedItem,Converter={StaticResource ToVisibilityConverter},ConverterParameter=A}"/>
                <local:BControl Visibility="{Binding ElementName=SendPushWindow,Path=DataContext.SelectedItem,Converter={StaticResource ToVisibilityConverter},ConverterParameter=B}"/>
                <local:CControl Visibility="{Binding ElementName=SendPushWindow,Path=DataContext.SelectedItem,Converter={StaticResource ToVisibilityConverter},ConverterParameter=C}"/>
                <local:DControl Visibility="{Binding ElementName=SendPushWindow,Path=DataContext.SelectedItem,Converter={StaticResource ToVisibilityConverter},ConverterParameter=D}"/>
                <local:EControl Visibility="{Binding ElementName=SendPushWindow,Path=DataContext.SelectedItem,Converter={StaticResource ToVisibilityConverter},ConverterParameter=E}"/>
</Page>

在父页public InterfaceType SelectedItem { get; set; }

您好, 我有一些控件,其可见性取决于SelectedItem类型,ToVisibilityConverter只是根据ConverterParameter更改可见性。 此示例有效,但当然如果SelectedItem中的基础项更改,则其他控件上存在绑定错误,可见性已折叠,这很明显,因为属性不匹配。所以我的目标是删除绑定错误 - 要做到这一点,我应该做一些不应该创建或更新控件,如果它不是正确的类型。怎么实现呢?如何处理这些解决方案?例如注入类型但是如何?

1 个答案:

答案 0 :(得分:0)

好的,我找到了一个简单的解决方案:

  <ContentControl Content="{Binding ElementName=SendPushWindow,
                Path=DataContext.SelectedItem,
                Converter={StaticResource ToTemplateConverter}}">

在转换器中只返回控件:)抱歉打扰