Как открыть один вид из другого, используя MVVM в WPF

Я новичок в MVVM. И я не могу получить ответ на эту проблему в течение длительного времени. Я не знаю, так ли сложен вопрос или я не объяснил должным образом. У меня есть MainWindow.Xaml, который содержит текстовый блок и кнопку для получения данных из текстового блока, и теперь, когда я нажимаю кнопку, он должен открыть второй View с именем tableView.xaml (я уже создал пользовательский элемент управления для него / Xaml).

У меня есть два вопроса сейчас (обратите внимание, что я следую MVVM, отвечая)?

(1) Как открыть это представление "tableView.xaml" от нажатия кнопки, закрыв текущую открытую форму MainWindow.xaml (нажатие этой кнопки привязывается с помощью MVVM)?

Мой код для нажатия кнопки, где эта новая форма должна открываться (закрывая текущий файл MainWindow.xaml), находится здесь (поэтому я предполагаю, что код для открытия tableView.xaml должен быть где-то здесь только):

 public void SaveExecuted() //some where here i have to open "tableView.Xaml"
 {
   System.Windows.MessageBox.Show(string.Format("Saved: {0} {1} ", DB_Col.DbName, DB_Col.NumTables));
 }
 public ICommand SavePersonCommand
        {
            get
            {
                if (savePersonCommand == null)
                    savePersonCommand = new DelegateCommand(new Action(SaveExecuted), new Func<bool>(SaveCanExecute));
                return savePersonCommand;
            }
        }

Но как это сделать?

(2) «tableView.Xaml» должен содержать графический интерфейс, который будет динамически записываться на c # в соответствии с вводом, полученным мной в предыдущем MainWindow.xaml при нажатии кнопки «Сохранить», и они должны быть добавлены в tableView.Xaml. Так как и где написать этот код C #, чтобы графический интерфейс, сгенерированный этим кодом c #, отображался в tableView.Xaml?

Резюме: Может кто-нибудь, пожалуйста, дайте мне знать, как открыть tableView.Xaml от нажатия кнопки и как добавить / визуализировать GUI на tableView.Xaml (я знаю, как написать код c # в Generate GUI, но где написать этот код, чтобы он будет отображать GUI в tableView.Xaml с соблюдением правил MVVM).

РЕДАКТИРОВАТЬ: Я чувствую, что все еще дорогие помощники не могут понять, что я пытаюсь сделать, поэтому, пожалуйста, посмотрите это для более подробной информации:

Что мне нужно сделать, это: У меня есть MainWindow.xaml, который содержит текстовое поле «Введите количество таблиц», который получает ввод от пользователя (как количество таблиц, которые он хочет создать). И пользователь после ввода этого ввода он нажмет кнопку «Сохранить». Теперь сохранение кнопки должно закрыть MainWindow.xaml и запустит новый usercontrol, который является "tableView.xaml". Предположим, он ввел 4 и сохрани. Теперь во вновь запущенном tableView.xaml я должен показать текстовое поле, которое получит «Имя таблицы», «Nmbr столбцов», если он введет 3 для Количество столбцов, то должно быть еще 3 текстовых поля для получения имени каждого столбец и тип данных и первичный ключ и кнопка сохранения наконец.

И этот GUI теперь должен повторяться 4 раза, потому что в Mainwondow.xaml пользователь вводит 4 в параметре «Количество таблиц» динамически при запуске. Поэтому мы должны повторить этот GUI 4 раза для каждой записи таблицы в «tableView.xaml», поэтому я пишу код на c # для генерации GUI, и после генерации GUI я буду отображать этот GUI, полученный из кода C #, в tableView.xaml. Теперь ты понял? Если вы знаете какой-либо другой способ сделать это с помощью MVVM, тогда вы можете дать мне небольшой пример. Динамически генерируя GUI с использованием кода на C #, я должен сделать что-то вроде:

Теперь, когда я получил Ввод от пользователя в MainWindow.xaml как 4, я повторяю ниже GUI 4 раза (для цикла внутри большого контейнера) и отображаю его в tableView.Xaml (я делаю это в c #, потому что я должен динамически повторять его по выбору пользователя в форме MainWindow.xaml).

StackPanel stp = new StackPanel();
TextBlock txt1 = new TextBlock();
stp.Children.Add(txt1);  

Этот stp должен идти в tableView.xaml и должен отображать 4 стека, каждая из которых содержит текстовый блок.

Ответы на вопрос(3)

Ваш ответ на вопрос