2017-04-15 11 views
1

私は現在、WPFとC#(学習の練習として)を使って簡単なアプリケーションを作成しています。私は、ほぼ同じ2つのページ(同じユーザーコントロール、同じリスト、同じボタンのメソッドなど)が必要になることに気づいた。異なったものになるのはコンテンツです - 異なるテキスト、ヘッダー、画像が表示されます。
繰り返しメソッドを避けるのは簡単です。これらの2つのページから継承する抽象基本ページを作成します。しかし、基本的にXAMLコード全体を繰り返さないようにするにはどうすればよいですか?文明的なやり方でそれを解決する方法はありますか、それとも洞窟人のようにコピーして貼り付けるだけですか?
ありがとうございました!繰り返しXAMLを避けるにはどうすればよいですか?

+1

これは、異なる制御テキスト、画像などがビューモデルのプロパティにバインドされたテンプレートのように聞こえます。 –

+0

正しい方向の仲間を私に指摘してくれてありがとう、私はこれを調べます。どうもありがとう! –

+0

...またはテンプレートではなくUserControl。ベンジャミンからの良い答え。 –

答えて

4

1.ユーザーコントロールを作成し、それらを

あなたはあなたの窓に直接すべてを置く必要はありません再利用します。代わりに、UserControlを作成し、そこに同様のコントロールを配置します。たとえば、DataContextを変更するか、DependencyPropertysをさまざまなユースケースに使用して区別することができます。 UserControlの名前をMyUserControlとしましょう。あなた、あなたのウィンドウでこのようにそれを含めることができます。

<local:MyUserControl x:Name="MemberNameCanBeAccessedInCodeBehind" /> 

2.再利用性に関する私のために大きな目の開幕戦だった再利用コードビハインド

一つのことだったという事実XAMLファイルこととそのコードビハインドファイルは基本的に同じコインの2つの側面です。 MyUserControlに戻りましょう。

<UserControl x:Class="MyUserControl" ... 

とコードビハインドあなたしている中:あなたが持っているXAMLファイルで

public partial class MyUserControl : UserControl 

事がある:あなたはUserControlから継承する必要はありません!

public class MyUserControlClass : UserControl 
{ 
    // Everything that you want to reuse! 
} 

は今、あなたは自分のXAMLでUserControlを交換し、コードビハインドでMyUserControlClassとあなた:あなたは、キーバインディングやイベントハンドラのようないくつかのコードビハインド機能を持っている場合は、独自のカスタムユーザーコントロールクラスを作成することによって、それらを再利用することができますその機能を使用できます:

<local:MyUserControlClass x:Class="MyUserControl" ... 

public partial class MyUserControl : MyUserControlClass 

XAMLウィンドウは最初にエラーを表示することがありますが、コンパイルすると機能します。

関連する問題