私は現在、WPFとC#(学習の練習として)を使って簡単なアプリケーションを作成しています。私は、ほぼ同じ2つのページ(同じユーザーコントロール、同じリスト、同じボタンのメソッドなど)が必要になることに気づいた。異なったものになるのはコンテンツです - 異なるテキスト、ヘッダー、画像が表示されます。
繰り返しメソッドを避けるのは簡単です。これらの2つのページから継承する抽象基本ページを作成します。しかし、基本的にXAMLコード全体を繰り返さないようにするにはどうすればよいですか?文明的なやり方でそれを解決する方法はありますか、それとも洞窟人のようにコピーして貼り付けるだけですか?
ありがとうございました!繰り返しXAMLを避けるにはどうすればよいですか?
1
A
答えて
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ウィンドウは最初にエラーを表示することがありますが、コンパイルすると機能します。
関連する問題
- 1. xamlでコードを繰り返さないようにするにはどうすればよいですか?
- 2. SQLの再帰CTE - 繰り返し結果を避けるにはどうすればよいですか?
- 3. 繰り返しテンプレートの特殊化を避けるにはどうすればよいですか?
- 4. JUnit:@Parametersの冗長/繰り返しデータを避けるにはどうすればよいですか? (リファクタリング)
- 5. python/kivyで繰り返しを避けるにはどうすればいいですか?
- 6. この繰り返しコードはどうやって避けるのですか?
- 7. 繰り返しパラメータを扱うにはどうすればいいですか?
- 8. テキスト内の繰り返し単語のインデックスを見つけるにはどうすればよいですか?
- 9. 繰り返しAJAXリクエストを避ける
- 10. 値の繰り返しを避ける
- 11. 繰り返しJavaScriptを避ける
- 12. この行の繰り返しは避けられますか?
- 13. 反復を避け、繰り返しを避ける - Excelの式
- 14. Javascriptのアニメーションテキストが繰り返されないようにするにはどうすればよいですか?
- 15. このHTMLブロックを繰り返さないようにするにはどうすればよいですか?
- 16. random.choiceを繰り返さないようにするにはどうすればよいですか?
- 17. バックグラウンドイメージを繰り返さないようにするにはどうすればよいですか?
- 18. 繰り返し結果を避けるために、別個のID列を取得するにはどうすればよいですか?
- 19. 繰り返しを避けるためにこのコードをどのように構造化できますか?
- 20. ハンドルバーでコードの繰り返しを避けるには?
- 21. Djangoでテンプレートの繰り返しを避けるには?
- 22. Makefileで繰り返し暗黙のルールを避けるには?
- 23. MSBuildで繰り返しを避けるには?
- 24. 数字のリスト - 繰り返しパターンを見つけるにはどうすればいいですか?
- 25. xamlで同様のマークアップを繰り返さないようにするにはどうすればよいですか?
- 26. UWP XAMLのグリッドで折り返しを解除するにはどうすればよいですか?
- 27. スクロール中にキーパッドを避けるにはどうすればよいですか?
- 28. 開発環境でmaven-dockerを使用して、ダウンロードしたjarの繰り返しを避けるにはどうすればいいですか?
- 29. Symfonyフォームの繰り返しフィールドを何度か格納するのを避けるにはどうすればいいですか?
- 30. Rustのマクロでインデックスを繰り返し展開するのを避けるにはどうすればいいですか?
これは、異なる制御テキスト、画像などがビューモデルのプロパティにバインドされたテンプレートのように聞こえます。 –
正しい方向の仲間を私に指摘してくれてありがとう、私はこれを調べます。どうもありがとう! –
...またはテンプレートではなくUserControl。ベンジャミンからの良い答え。 –