Используя подход MVVM, ваша ViewModel (ShareWindow) не должна знать о View (MainWindow).Кроме того, ваш конструктор для MainWindow:
public MainWindow()
{
DataContext = new ShareWindow();
}
, который инициализирует экземпляр ShareWindow.
Конструкция ShareWindow включает в себя:
UCSale ucSale = new UCSale();
MainWindow mw = new MainWindow(); //IS IT ALLOED ?
public MainWindow()
{
Window1.contentCont1.Children.Add(ucSale );;
}
, чтосоздание экземпляра MainWindow: MainWindow mw = new MainWindow(); //IS IT ALLOED ?
и, таким образом, формируется цикл.
Этого можно избежать, просто удалив экземпляр MainWindow из модели представления ShareWindow, поскольку это нарушает шаблон MVVM.Любые связи с View от ViewModel должны использовать события для их развязки.