admin / 18.10.2018

WPF | Подключение к базе данных

Я разрабатываю простое приложение WPF, которое ведет переговоры с базой данных Access 2000. Я использовал структуру сущности в прошлом, но мне кажется, что я ограничена базой данных Access. Мне удалось создать файл xsd DataSet, который содержит сопоставления для каждой таблицы и отношения между таблицами. Схема показана ниже:

Чтобы привязать данные к файлу данных WPF, я установил DataContext в DataSet после его заполнения из разных адаптеров таблицы. Я использую следующий С# для достижения этого в коде WPF позади:

Я хочу отобразить datagrid WPF, который содержит данные из таблицы транзакций. Я могу получить основные данные из таблицы транзакций. То, что я хочу достичь, — это иметь возможность перемещаться по отношениям, которые имеет таблица, чтобы я мог отображать имя дантистов вместо значения внешнего ключа. Я пробовал следующий XAML:

Обратите внимание на привязку под столбцом дантиста. Когда я пытаюсь это сделать, я получаю пустой столбец данных. Как я могу перемещаться по отношениям с помощью XAML?

c#ms-accesswpfxamldatagrid

задан Mike Scott 09 окт. '13 в 23:57

источникподелиться

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

Как осуществить нестандартную привязку данных к DataGrid в WPF?

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

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

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

ViewModel—

Для создания DataTable —

Код XAML —

DataTable создается как ожидалось (из метода LoadManualDataTable), и если я добавлю любую строку через код, тогда эти строки будут привязаны и будут отображаться в DataGrid. Но я не могу создавать или удалять строки через DataGrid.

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

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

Привожу пример, как положить и достать информацию из DataGrid в WPF:

Как указывалось ранее HighCore, вы должны сделать это с помощью списка (сбор) объектов, вы хотите отобразить в DataGrid. Здесь находится . Переплет.

Существует несколько руководств и руководств, но у вас могут быть некоторые вопросы или нужны какие-то намеки для продолжения.

В этот момент было бы полезно знать, что некоторые вещи совершенно разные, а другие — при переходе на WPF. Вы можете прочитать this статью, написанную Reed Copsey. Это было действительно отличное чтение и помогло мне оставить WinForms в качестве основы.

Если вы находитесь в месте, где вы хотите сказать, что вы готовы реализовать свой первый MVVM образец, вы действительно должны взглянуть в таких понятий, как Binding, События, Команды и как это работает в первую очередь.

В этом конкретном случае вам не нужны функции, чтобы уведомить View о любых изменениях, которые были сделаны с того момента, как вы заявили выше, что данные не будут изменены. Однако интерфейс здесь совсем не нужен, но вы должны его использовать.

Я бы рекомендовал использовать границы для вашего стиля.

Вы можете легко воссоздать этот макет, создав границы для каждой строки и каждого столбца и соответственно установите для них ряды и колпаны.

У вас будет 5 границ с colspan 2, эти границы позаботятся о ваших градиентных фонах для каждой строки и границ вдоль верхней и нижней части каждой строки. Тогда у вас будет 2 границы с rowspan 5, они будут обрабатывать границы столбцов. Представьте, что вы накладываете границы, чтобы сформировать визуальный эффект сетки, которым вы пользуетесь.

Для заголовка и внешней границы просто оберните всю сетку рамкой и стилем по мере необходимости.

Я бы рекомендовал хранить ваши стили в качестве ресурсов, чтобы вы могли хранить всю информацию о своем стиле в одном месте.

Привязываю коллекцию к DataGrid, данные отображаются, но изменения не возвращаются

Позаботьтесь о том, как работает стиль, потому что он довольно мощный, но есть кривая обучения, так как она совсем не похожа на работу CSS. Я бы рекомендовал прочитать WPF Unleashed, если можно.

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*