2011-12-17 9 views
0

MainWindow.xaml.csではなく、別の.csファイルにメソッドを持たせるためのイベント(Clickなど)について、WPFに方法がありますか?言い換えれば、マウスダウンイベントを選択してメソッドを書き込むためにダブルクリックすると、メソッドがMainWindow.xaml.csに表示されます。これを別のファイルにリダイレクトする方法はありますか?私は私のMainWindow.xamlではメインウィンドウの上にある(例えばテキストボックス、ボタンなどのように)私が使用する属性/フィールドのすべてにアクセス.....異なる.csファイルを作成する方法

が必要になり、私は」gotFocuslostFocusなどを扱うメソッドを持っています私は同じファイル内のソケットと接続を扱っている(私はそれが悪いデザインだと感じているように)ことを望んでいません。私が間違っているなら私を訂正してください。

答えて

3

Partial Class イベントハンドラを配置するには、それもMainWindowクラスの一部ですが、別のファイルになります。

これは、ソケットやコネクションを処理するためのコードを独自のクラスやクラスに移動し、MainWindow.xaml.csにイベント処理コードを残すことです。部分的なクラスは実際にはこの場合、IMOに使用する適切なツールではありません。

+0

はい、まさに私がやりたいことですが、イベントを追加したい場合は、「mouseDownイベント」を選択してメソッドを書き込むと「somethingClick」と言いますが、MainWindow.xamlには送られません.csファイル?どのように私は自分のクラスに入るためにこれを再指示するだろうか? – BigBug

+0

ええ、デフォルトでは、somethingClickメソッドはMainWindow.xaml.csに入れられますが、そこから切り取って部分クラスファイルに貼り付けるだけです。また、部分クラスファイルを作成するには、新しいファイルに新しいクラスを追加し、それを 'partial class MainWindow' –

2

MVVMデザインパターンを使用しているように思えます(WPFはこれに非常にうまく対応します)。

here is a good article on MSDNhere is one by Josh Smith、とGoogleははるかに

を明らかにし、あなたがlook into commandingに必要のようなあなたの概念は、おそらく最良のアイデアをUIと分離コード間の依存関係を削除する場合それは同様に

1

を鳴らしWPFを使用しているので、MVVMパターンです。あなたは、ボタンをクリックしたときに何が起こっているのかを知る必要はありません。そうしないと、ICommandを考えて、コードからコマンドを分離することができます。 @ Mead'Dibのようなものが推奨されています。

他の領域では、受信者と呼び出し元を分けることができるコマンドパターンのようなものを考えることができます。あなたがコードの背後に密接に結びついていないように。ですから、メンテナンスの問題が発生したときに安全になるようなパターンを使用することを考えてください。

関連する問題