21

WinForms で作成した小さなプログラムがあり、WPF を使用して再度作成したいと考えています。

私は WPF が初めてで、XAML でできることは何でも、コードのみを使用して行うこともできます。

もちろん、Winforms を使用する場合、XAML はありません。winforms アプリケーションに使用したのと同じコードを WPF アプリケーションに使用して、同じ結果を得ることができますか? または、XAML を作成および編集する必要がありますか? XAML を使用する場合と使用しない場合の利点は何ですか?

また、Winforms を使用した過去の経験を考慮すると、Winforms では機能するが WPF では適切ではないという設計と実装についての考え方をどうにか変更する必要がありますか?

4

5 に答える 5

31

いいえ、WPF で winforms のコードを再利用することはできません。

できたとしても、すべきではありません。

XAML でできることは何でも、XAML なしで行うこともできます

XAML を実際に使用して UI を定義してから、DataBindingMVVMを使用する必要があります。これは、従来の手続き型の winforms アプローチよりもはるかに専門的な開発方法です。

XAML を使用しないことは、使用するよりもはるかに面倒です。最初は恐ろしく見えるかもしれませんが、実際に作業するのは本当に素晴らしいことです。

もちろん、Winforms を使用する場合、XAML はありません。

いいえ、もちろん違います。winforms は、何もサポートしていない非常に古いテクノロジです。それが彼らが Visual Studio デザイナーを作成した理由です。そうでなければ、何か役に立つことをするために必要な恐ろしい巨大な量のコードのために、誰も winforms を使用したことはなかったでしょう。

winforms アプリケーションに使用したのと同じコードを WPF アプリケーションに使用して、同じ結果を得ることができますか?

おそらく、いくつかのクラス名などを適応させることによって、WPF によって提供される主な利点を失います。これは、恐ろしい winform のようなコードを正確に取り除くことです。

Winforms を使用した過去の経験を考慮して、Winforms では機能するが WPF には適していない設計と実装についての考え方をどうにかして変更する必要がありますか?

はい。WPF は MVVM をサポートしており、これには従来の winforms アプローチとはまったく異なる考え方が必要です。

Winform から WPF へのアップグレードに関するRachel の優れた投稿を読むことを強くお勧めします。

于 2013-09-23T21:14:45.327 に答える
3

Winforms アプリを WPF に直接変換しようとしましたが、常にフレームワークと戦っているため、必要以上に多くの問題が発生します。MVVM とデータバインディングを読んで、それを使用してください。これは WPF が設計されたものであり、テスト容易性などのいくつかの利点があります。実際には、いくつかの単純な概念 (データバインディング、ビューモデルなど) を使用してかなり長い道のりを歩むことができ、知識を深めることができますが、最初に MVVM と WPF でのデータバインディングを理解することをお勧めします。

始めるのに適したフレームワークは MVVMLight ですが、最初に物事がどのように機能するかを知るために、フレームワークなしで基本を書く価値があります。

これがリード・コプシーからの良い一連の投稿であることを覚えているようです: http://reedcopsey.com/series/windows-forms-to-mvvm/

于 2013-09-23T21:18:30.670 に答える
2

XAML を使用せずに WPF コントロールを作成しようとすると、問題が発生します。フレームワーク全体が MVVM パターンを中心に構築されているため、ビューを手続き型ではなく宣言型で記述する必要があります。C# と XAML で同じ UI オブジェクトを確実に作成できますが、C# で作成するには、UI の状態が変化したときにそれを補正するために、フレームワークがどのように動作するかを (非常に詳細に) 知る必要があります。反対に、XAML を実行すると (WPF で指示されているように)、通常は問題なく更新され、無限のバグに対処する必要はありません。要するに、「はい」はコードで実行できますが、「いいえ」は正気を失うことなくコードで実行することはできません。

于 2013-09-23T21:14:37.043 に答える
1

他の回答の 2 番目または 3 番目または 4 番目にします。「Winforms スタイル」コードを使用して WPF アプリを構築しようとすることは決してありません。私は初めての WPF アプリでそれを行いましたが、これは私が今まで犯した最大の間違いでした。なんて大混乱だ。私がMVVMに向かって途中で行った2番目のアプリは、それも巨大な混乱でした. 3番目のアプリで、MVVM、DIなどを100%使用して以来、WPFとコードの本で100%が非常にきれいです。

Winforms のコードを WPF に移植しても意味がありません。Winforms で記述したコードの大部分は、WPF に移行すると破棄されます。基本的に移植可能なものはビジネスロジックだけです。すべての UI ロジックは完全に異なります。

WPF に関するこれまでで最も優れた概念の 1 つは、UI とビジネス ロジックの分離です。これにより、コントロールの交換が簡単になります。

于 2018-03-26T22:54:14.453 に答える