私はMVVMデザインパターンを守ってWPFアプリケーションを作成しています。このアプリケーションには、さまざまなカテゴリに分割されたさまざまな教育モジュールがあり、ユーザーによって実行されます。モジュールは、階層メニューに編成されています。私のViewModelにはMenuPageViewModel
というクラスがあり、レンダリングに必要な情報がMenuNode
に公開されています。もちろん、メニューツリーの終点要素には、ユーザーに表示したい内容があります。このコンテンツは、さまざまな種類のモジュールの1つになります。現在、ユーザーがメニュー内のモジュールを選択すると、大きい条件ブロックを使用して、どのタイプのViewModelをMenuItemのコンテンツプロパティのタイプに基づいて表示するかを決めることができません。たとえば...大規模な条件を避けて適切なViewModelを選択する
if (CurrentlySelectedMenuItem.Content is Lesson)
return new LessonViewModel(CurrentlySelectedMenuItem.Content as Lesson);
if (CurrentlySelectedMenuItem.Content is SkillsCheck)
return new SkillsCheckViewModel(CurrentlySelectedMenuItem.Content as SkillsCheck);
誰かが私をよりエレガントで保守的なアプローチへのヒントを与えることができますか?今、新しいモジュールタイプを追加すると、この条件ブロックを更新することを忘れてはなりません。
ありがとうございました。