wpf Как передать контекст данных из DialogHost?

Определил класс DialogHost.cs:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pearlbook_Core
{  
    partial class DialogHost:UC_MainWindow
    {
        public Pearlphonebook Pearlphonebook { get; private set; }
        public DialogHost(Pearlphonebook p)
        {
            InitializeComponent();          
            Pearlphonebook = p;
            this.DataContext = Pearlphonebook;
        }
    }
}

Код обработчика событий:

private void ItemCreate_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    var result = AddDialog.IsOpen = true;
    DialogHost dialog = new DialogHost(new Pearlphonebook());
    Pearlphonebook pearlphonebook = dialog.Pearlphonebook;

    db.pearlphonebooks.Add(pearlphonebook);
    db.SaveChanges();
}

Диалог открывается, вношу в его TextBox'ы данные, но в таблицу добавляется пустая строка.

Что не правильно делаю? Как правильно передать данные из TextBox'ов в таблицу с помощью контекста данных?


Ответы (1 шт):

Автор решения: DemionRok IT

Я нашел решение на свой вопрос CodeBehind:

private async void ItemCreate_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                var pearlphonebook = new Pearlphonebook();
                db.pearlphonebooks.Add(pearlphonebook);
                db.SaveChanges();
                await DialogHost.Show(pearlphonebook);
            }

MVVM

public RelayCommand AddCommand
    {
        get
        {
            return addCommand ??
                    (addCommand = new RelayCommand(async (o) =>
                    {
                        var pearlphonebook = new Pearlphonebook();
                        db.pearlphonebooks.Add(pearlphonebook);
                        db.SaveChanges();
                        await MaterialDesignThemes.Wpf.DialogHost.Show(pearlphonebook);
                    }));
        }
    }
→ Ссылка