Wpf 用户控制重构-我能做得更好吗?
我想使用下面的用户控件进行三种不同的演示。由于传递的数据上下文中的对象具有公共接口,因此每个表示中唯一不同的两个方面是:Wpf 用户控制重构-我能做得更好吗?,wpf,xaml,user-controls,refactoring,Wpf,Xaml,User Controls,Refactoring,我想使用下面的用户控件进行三种不同的演示。由于传递的数据上下文中的对象具有公共接口,因此每个表示中唯一不同的两个方面是: 图像资源(“imgDepartment”) FilterPanel控件(EmployeeFilterPanel) 尽管如此,正是因为这两项,我需要这个用户的三个不同版本,其中大部分代码都是重复的 我可以这样做吗?怎么做 干杯, 贝里尔 使现代化 通过设置样式并将PresentationImageUri属性添加到我的ViewModel,解决了图像部分问题,如下所示: &l
贝里尔
使现代化
通过设置样式并将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类型。为什么不通过codebehind设置ImageSource&DataContext?我讨厌回答我自己的问题,但也许这会帮助其他人。最后,我在视图模型中结合使用了数据模板、资源转换器和字符串键。更多细节和一些代码 B
<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>