Wpf 有条件地创建控件绑定

Wpf 有条件地创建控件绑定,wpf,binding,interface,Wpf,Binding,Interface,在父页面中,选择EdItem{get;set;} 你好,, 我有一些可见性取决于SelectedItem类型的控件,VisibilityConverter只需根据ConverterParameter更改可见性。 这个例子是可行的,但是如果SelectedItem中的基础项发生了更改,那么其他控件上的绑定错误会导致可见性崩溃,这是显而易见的,因为属性不匹配。所以,我的目标是删除绑定错误——如果控件类型不正确,我应该做一些不应该创建或更新控件的事情。如何实现?如何处理这些解决方案?例如注射,但如何注

在父页面中,选择EdItem{get;set;}

你好,, 我有一些可见性取决于SelectedItem类型的控件,VisibilityConverter只需根据ConverterParameter更改可见性。
这个例子是可行的,但是如果SelectedItem中的基础项发生了更改,那么其他控件上的绑定错误会导致可见性崩溃,这是显而易见的,因为属性不匹配。所以,我的目标是删除绑定错误——如果控件类型不正确,我应该做一些不应该创建或更新控件的事情。如何实现?如何处理这些解决方案?例如注射,但如何注射?

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

<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>

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

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