我有一个Person类。一个人可以有一个相关的控制。我可以通过数据绑定显示控件吗?
例如:名称:Bill,Control:TextBox 名称:Bob,Control:ComboBox 姓名:Dan,Control:CheckBox
我的资源字典中有以下xaml
<DataTemplate x:Key="PersonTemplate">
<DockPanel >
<TextBlock FontWeight="Bold" Text="Name: " DockPanel.Dock="Left" Margin="5,0,10,0"/>
<TextBlock Text="{Binding FirstName}" Foreground="Green" FontWeight="Bold" />
</DockPanel>
</DataTemplate>
我想将关联的用户控件添加到dockpanel,这可以完成吗
像是什么?
<DataTemplate x:Key="PersonTemplate">
<DockPanel >
<TextBlock FontWeight="Bold" Text="Name: " DockPanel.Dock="Left" Margin="5,0,10,0"/>
<TextBlock Text="{Binding FirstName}" Foreground="Green" FontWeight="Bold" />
<Control Type = "{Binding Control}"/>
</DockPanel>
</DataTemplate>
由于 丹
答案 0 :(得分:1)
我认为在这种情况下你可以使用ContentControl:
<ContentControl Content="{Binding Control}" />
那只会渲染你给它的任何东西。如果Person的“Control”属性是WPF控件,它将呈现它。
答案 1 :(得分:1)
至少在最初阶段,这对我有用:
<ContentControl Content="{Binding Control}"/>
注意:如果您的UI在多个位置绑定到此属性,则可能会因为尝试在多个位置为控件提供父级而获得异常。