Связывание таблицы данных с DataGrid в WPF и MVVMC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Связывание таблицы данных с DataGrid в WPF и MVVM

Сообщение Anonymous »

Я новичок в WPF, я использую шаблон MVVM в WPF и генерирую структуру Datatable во время выполнения, а затем связываю Datatable с DataGrid/RadGridView, который работает должным образом.

Проблема: я хочу, чтобы DataGrid/RadGridView был настраиваемым (где пользователь может добавлять новую строку, удалять строку и редактировать данные), и при нажатии кнопки «Сохранить» все должно быть сохранено в базе данных. У меня есть ситуация, когда мне нужно создать пустой DataTable с разными столбцами (в зависимости от ввода пользователя). Затем введите значения в эти столбцы, а затем нажмите «Сохранить», чтобы сохранить значение в базе данных. Я могу привязать DataTable к DataGrid (я могу видеть все имена столбцов и строки данных, если в DataTable уже есть некоторые данные в сетке), но НЕ могу добавлять (вводить) или удалять любую строку во время выполнения из DataGrid . Я установил значение «True» для CanUserDeleteRows и CanUserInsertRows. Я не уверен, где я ошибаюсь. Я реализую INotifyPropertyChanged в своем классе ViewModel.

Я изо всех сил пытаюсь получить желаемый результат.

Мой код выглядит следующим образом:

ViewModel--

Код: Выделить всё

    DataTable _manualDataTable;
public DataTable ManualDataTable
{
get
{
return _manualDataTable;
}
set
{
_manualDataTable = value;
OnPropertyChanged("ManualDataTable");
}
}
Для создания DataTable —

Код: Выделить всё

    void LoadManualDataTable()
{
DataTable dtData = new DataTable();
dtData.Columns.Add("TimeStamp", typeof(DateTime));
List columns = new List();
var query = _dataContext.GetSenData().Where(sen => sen.LogID == ((DataLogs)SelectedItemNode).Logger.LogID).Select(sen => sen.SeriesID);
var queryTS = _dataContext.GetDataSeries().Where(ts => query.Contains(ts.SeriesID));
foreach (DataSeries ts in queryTS)
{
var queryPLoc = _dataContext.GetDataLoc().Where(pLoc => pLoc.ParamID == ts.ParamID).Select(pLoc => pLoc.Name);
dtData.Columns.Add(queryPLoc.First(), typeof(string));
}

ManualDataTable = dtData;
}
Код XAML —
DataTable создается, как и ожидалось (из метода LoadManualDataTable), и если я добавлю какую-либо строку через код, то эти строки будут привязаны и будут отображаться в DataGrid. Но я не могу создавать или удалять строки через DataGrid.

Любая помощь будет высоко оценена.

Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/928 ... n-wpf-mvvm
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Fire RelayCommand из DataGrid с Avaloniui и Toolkit Mvvm Mvvm
    Anonymous » » в форуме C#
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Свяжите DataTable с DataGrid в WPF & MVVM
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • WPF: В чем разница между try...finally и try..catch..finally в WPF, MVVM? [закрыто]
    Гость » » в форуме C#
    0 Ответы
    45 Просмотры
    Последнее сообщение Гость
  • WPF: В чем разница между try...finally и try..catch..finally в WPF, MVVM? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Как объединить GridSplitter и DataGrid, где DataGrid должен иметь вертикальную полосу прокрутки?
    Anonymous » » в форуме C#
    0 Ответы
    116 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»