我想使用下面的用户控件进行三种不同的演示。由于传递的数据上下文中的对象具有公共接口,因此每个演示文稿中仅有两个不同的内容:
尽管如此,仅仅因为这两个项目,我需要这个用户的三个单独版本,其中大部分都是重复的代码。
我能这样做吗?怎么样?
干杯,
Berryl
<DockPanel LastChildFill="True" >
<uc:ListSubjectHeader DockPanel.Dock="Top"
Subject="{Binding PresentationSubject}"
AddNewItemCommand="{Binding AddCommand}"
ImageSource="{StaticResource imgDepartment}"
/>
<local:EmployeeFilterPanel DockPanel.Dock="Top" DataContext="{Binding MasterVm}"/>
<Grid Margin="0, 5, 0, 0">
<common:MasterListingWorkspacesControl />
</Grid>
</DockPanel>
通过设置样式并将PresentationImageUri属性添加到我的ViewModel来解决图像部分,如下所示:
<Style x:Key="ListSubjectHeaderStyle" TargetType="{x:Type uc:ListSubjectHeader}">
<Setter Property="DockPanel.Dock" Value="Top" />
<Setter Property="Subject" Value="{Binding PresentationSubject}" />
<Setter Property="AddNewItemCommand" Value="{Binding AddCommand}" />
<Setter Property="ImageSource" Value="{Binding PresentationImageUri}" />
</Style>
还不确定如何处理FilterPanel类型。
答案 0 :(得分:0)
为什么不设置 ImageSource &amp; DataContext 通过代码隐藏?
答案 1 :(得分:0)
我讨厌回答自己的问题,但也许会帮助别人。我在视图模型中使用了DataTemplates,资源转换器和字符串键的组合。更多详细信息和一些代码here
乙