0

ここに画像の説明を入力

ユーザーがFrameworkElementsをクリックしてCanvas上でドラッグするグラフィックアプリケーションに取り組んでいます。コード ビハインドで動作しますが、Catel/MVVM で更新したいと考えています。

私の一般的な質問: このアプリでは、オブジェクトの位置を更新するために "LayourRoot" に対する MousePosition を知る必要があるため、ViewModel は View について "知る" 必要があります。これは MVVM パターンに反します。コード ビハインドですべての Mouse/FrameworkElement インタラクションを処理し、MVVM プロパティを使用して任意の data/FrameworkElement を処理する方がよいでしょうか。(data/FrameworkElement とは、Canvas.Top、Canvas.Left、Fill などの特定のプロパティ値をデータストアに保存することを意味します。)

一般的なアプローチに関するアドバイスはありますか?

4

1 に答える 1

3

ドラッグ アンド ドロップは UI の問題であるため、UI に常駐する必要があります。

MVVM は「分離コードなし」という意味ではありません。これは、UI の問題からビジネス ロジックを分離することを意味します。

ビューはドラッグ/ドロップを処理する必要があり、ドロップするとオブジェクトのモデルの位置情報が更新されます。

于 2014-07-30T19:31:56.703 に答える