C#/WPF
を使用し、MVVM
パターンに従ってプロジェクトに取り組んでいます。このプロジェクトはタッチスクリーン用に設計されています。
プログラムの主な目的は次のとおりです。
Programs
を含むChannels
があり、Functions
を含みます。これらはすべてコピー/切り取り/貼り付けできるはずです。
コピー/切り取り/貼り付け機能を実装する必要があり、どこが最適か疑問に思います。
モデルにそのような機能があるのは奇妙に思えるので、私の考えはそれらをViewModelに実装することでした。
ただし、モデルには完全なビジネスロジックを含める必要があるため、ここにモデルを実装することは論理的ですが、疑問があります。
そのような実装のベストプラクティスは何ですか?前もって感謝します。
クリップボードサービスを追加します
IClipboard
{
void AddProgram(Program p);
Program GetProgram(string id);
..... etc
}
これをViewModelに注入します。これにより、コピー/貼り付けのキーストロークなどにコピー/貼り付けコマンドがバインドされます。
ViewModel
{
void OnCopy() {
if(mouseIsOverAProgram) { this.clip.AddProgram(getProgramUnderMouse())
}
}
あなたのモデルはプログラム、チャネル、関数などであり、この種のロジックについて知らないはずです。