2011-09-11 6 views
1

3つの異なるプレゼンテーションのために、以下のユーザーコントロールを使用したいと思います。渡されたデータのコンテキスト内にあるオブジェクトは、共通のインターフェイスを持っているので、各プレゼンテーションごとに変化する2つだけのものがあろう。ユーザーコントロールリファクタリング - これ以上はできますか?

  1. 画像リソース(「imgDepartment」)
  2. 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> 

enter image description here

更新

は、スタイルを設定し、以下のように私の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タイプをどのように扱うかまだ分かりません。

答えて

0

私は自分のものに答えるのが嫌いですが、多分それは他の人を助けるでしょう。私はビューモデルでDataTemplates、リソースコンバータ、および文字列キーの組み合わせを使用して巻き上げました。詳細および一部のコードhere

b

0

なぜ分離コードを通じてImageSourceは & のDataContextを設定していませんか?

関連する問題