Я пытаюсь переписать свое приложение, используя шаблон MVVM.
У меня есть окно для отображения связанных документов для разных объектов с помощью таких статических методов:
public partial class ShowRelatedDocuments : Window
{
private ShowRelatedDocuments()
{
InitializeComponent();
}
public static void ShowRelatedDocument(A objA)
{
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.HandleA(objA);
srd.ShowDialog();
}
public static void ShowRelatedDocument(B objB)
{
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.HandleB(objB);
srd.ShowDialog();
}}
Есть ли способ сохранить эти методы статичными?
ShowRelatedDocumentsVM.ShowRelatedDocument(A objA);
ShowRelatedDocumentsVM.ShowRelatedDocument(B objB);
Я ничего не нашел о ViewModels и статических методах. Может ли виртуальная машина создать свой экземпляр и показать его представление (здесь - окно)?
Или это лучший способ передать объекты в качестве параметра конструктору виртуальной машины следующим образом?
public ShowRelatedDocumentsVM(A objA)
{
HandleA(obj A)
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.DataContext = this;
srd.ShowDialog();
}
public ShowRelatedDocumentsVM(B objB)
{
HandleB(objB);
ShowRelatedDocuments srd = new ShowRelatedDocuments();
srd.DataContext = this;
srd.ShowDialog();
}
Или оба способа ошибочны, потому что я нарушаю шаблон MVVM из-за создания представления в модели просмотра?
Спасибо заранее.