質問の混乱のタイトルに申し訳ありません。基本クラスから派生したViewModelとModelsを実装する方法については不明です。モデルとビューモデルの関係と継承 - どのように実装する必要がありますか?
私のViewModelクラスはViewModelBaseに基づいており、ViewModelBaseは他のすべてのモデルの基本クラスとして機能するModelBaseを保持しています。
各ViewModelはModelプロパティがModelBaseクラスとして基本ViewModelクラスで定義されているため、ModelBaseから関連するModelクラスにモデルをキャストする別のプロパティを作成する必要があります。
私の質問です - 簡単な解決策はありませんか?これらの問題に関連する設計パターンはありますか?
はここでのサンプルコードです:あなたが見ることができるように
public abstract class BasicViewModel : ViewModelBase
{
public BasicViewModel()
{
}
public ModelBase Model { get; set; }
}
public class ModelBase
{
}
public class ContainableViewModel : BasicViewModel
{
public ContainableViewModel(ContainableModel model)
{
this.Model = model;
}
public ContainableModel MyModel { get { return (ContainableModel)Model; } }
public int Children { get { return MyModel.Children; } set { MyModel.Children = value; } }
}
public class ContainableModel : ModelBase
{
public ContainableModel()
{
Children = 2;
}
public int Children { get; set; }
}
、「mymodelという」プロパティは、バグを私に1です。
ご協力いただきありがとうございます。
ColinEの答えは、あなたのオブジェクトにどんなタイプのベースコレクションも使いたくない場合にのみ役に立ちます。コレクションを使用する場合は、元のコードが最も適切な答えと思われます。 –