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