Я хотел бы использовать пользовательский элемент управления ниже для трех разных презентаций. Поскольку объекты, которые находятся в переданном контексте данных, имеют общие интерфейсы, только две вещи, которые будут отличаться от каждой презентации, будут:
- ресурс изображения ("imgDepartment")
- Элемент управления FilterPanel (EmployeeFilterPanel)
Как бы то ни было, только из-за этих двух элементов мне нужны три отдельные версии этого пользователя с в основном дублированным кодом.
Могу ли я это сделать? Как?
Приветствия
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.