3つの異なるプレゼンテーションのために、以下のユーザーコントロールを使用したいと思います。渡されたデータのコンテキスト内にあるオブジェクトは、共通のインターフェイスを持っているので、各プレゼンテーションごとに変化する2つだけのものがあろう。ユーザーコントロールリファクタリング - これ以上はできますか?
- 画像リソース(「imgDepartment」)
- FilterPanel制御(EmployeeFilterPanel)
私はこの2つの項目のために、私はこのコードのほとんどが重複した3つの別々のバージョンが必要です。
できますか?どうやって?
乾杯、
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>
更新
は、スタイルを設定し、以下のように私のViewModelにPresentationImageUriプロパティを追加することにより、画像の一部を解決:
<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タイプをどのように扱うかまだ分かりません。