Обновление изменений в DataGrid из базы данных - C# WPF

686
30 июня 2017, 04:36

Добрый день. Столкнулся с проблемой разрабатывая простое сервер - клиент приложение. У меня есть основная форма с DataGrid, и вторая форма, в которой я заполняю контент. после заполнения я записываю данные в базу. При помощи этой же формы я делаю так же редактирование. Как сделать события, при изменениях и добавлении в БД, а также автоматически обновлять содержимое DataGrid?

<DataGrid Grid.Column="0" x:Name="ListOfNotes" AlternatingRowBackground ="LightGreen"  RowBackground ="Green" 
                              Background="White" Margin="0,20,20,0" Loaded="grid_Loaded" IsReadOnly="True" 
                              BorderBrush="Black" Foreground="Black" OpacityMask="Black" FontFamily="ComicSans"
                              SelectionChanged="ListOfNotes_SelectionChanged" LoadingRow="ListOfNotes_LoadingRow"
                              SelectionMode="Single" SelectionUnit="FullRow" DataContext="{Binding Source=list}">

Метод из DAL, например добавление/ тут возможно неверно условие возврата булевого значения.

public static bool Add(NoteEntity ne)
    {
        using(DataBaseContext dbcon = new DataBaseContext())
        {
            try
            {
                dbcon.Notes.Add(ne);
                dbcon.SaveChanges();
                return true;
            }
            catch (Exception err)
            {
               throw new Exception(err.Message);
            }
        }
    }`

Метод чтения из БД`

public static List<NoteEntity> GetById(Guid id)
    {
        using (DataBaseContext dbcon = new DataBaseContext())
        {
            NoteEntity nt = new NoteEntity();
            var getNote = dbcon.Notes.Where(i => i.Id == nt.Id);
            return dbcon.Notes.ToList();
        }
    }

Потом в основной форме я получаю все значения из БД`

private void GetNotes()
    {
        try
        {
            ListOfNotes.ItemsSource = factory.CreateNotesFactory().GetAll();
        }
        catch (Exception err)
        {
            ShowError(err.Message);
        }
    }

Нажимаю добавить. (метод в обработчике кнопки "добавить.")`

private void OpenNotesDialog()
    {
        NotesWindow notes = new NotesWindow();
        notes.Owner = this;
        //notes.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
        notes.ShowDialog();
    }

А вот в другой форме я заполняю`

private void confirm_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            if (notesData.Id == Guid.Empty)
            {
                if (string.IsNullOrWhiteSpace(header.Text) && string.IsNullOrWhiteSpace(GetStringFromRtb(content)))
                {
                    ShowError(UserNotifications.FILL_ALL_FIELDS);
                }
                else
                {
                    notesData.Id = Guid.NewGuid();
                    notesData.Header = header.Text;
                    notesData.Content = GetStringFromRtb(content);
                    factory.CreateNotesFactory().Add(notesData);
                    if(factory.CreateNotesFactory().Add(notesData))
                    this.Close();
                }
            }

}

READ ALSO
как вернуть все индексы массива через return

как вернуть все индексы массива через return

Всем привет, нужно вернуть все индексы массива через return

228
Почему из #value первого поля в форме вырезаются пробелы?

Почему из #value первого поля в форме вырезаются пробелы?

Есть форма и кнопка выше нееПри нажатии на кнопку выводятся значения для первого и второго (нулевого и первого) полей - email и username

237
как узнать ширину без учета padding и border в javascript

как узнать ширину без учета padding и border в javascript

Мне нужно узнать ширину блока без учета padding без JQuery при этом это должно указываться только в пикселях и быть числом

410