admin / 18.10.2018
Я разрабатываю простое приложение 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 / RadGridView (где пользователь может добавить новую строку, удалить строку и отредактировать данные), а при нажатии кнопки «Сохранить» все должно быть сохранено в базе данных. У меня есть ситуация, когда мне нужно создать пустой DataTable с разными столбцами (в зависимости от ввода пользователя). А затем введите значения под этими столбцами, а затем нажмите кнопку «Сохранить», чтобы сохранить значение в базе данных. Я могу привязать DataTable к DataGrid (я могу видеть все имена столбцов и строки данных, если в таблице данных уже есть некоторые данные в DataTable), но НЕ может добавлять (вводить) или удалять любую строку во время выполнения из DataGrid , Я установил значение «True» для CanUserDeleteRows и CanUserInsertRows. Я не уверен, где я ошибаюсь. Я реализую INotifyPropertyChanged в моем классе ViewModel.
Я изо всех сил пытаюсь получить желаемый результат.
Мой код выглядит следующим образом:
ViewModel—
Для создания DataTable —
Код XAML —
DataTable создается как ожидалось (из метода LoadManualDataTable), и если я добавлю любую строку через код, тогда эти строки будут привязаны и будут отображаться в DataGrid. Но я не могу создавать или удалять строки через DataGrid.
Любая помощь будет высоко оценена.
Заранее спасибо!
Как указывалось ранее HighCore, вы должны сделать это с помощью списка (сбор) объектов, вы хотите отобразить в DataGrid. Здесь находится . Переплет.
Существует несколько руководств и руководств, но у вас могут быть некоторые вопросы или нужны какие-то намеки для продолжения.
В этот момент было бы полезно знать, что некоторые вещи совершенно разные, а другие — при переходе на WPF. Вы можете прочитать this статью, написанную Reed Copsey. Это было действительно отличное чтение и помогло мне оставить WinForms в качестве основы.
Если вы находитесь в месте, где вы хотите сказать, что вы готовы реализовать свой первый MVVM образец, вы действительно должны взглянуть в таких понятий, как Binding, События, Команды и как это работает в первую очередь.
В этом конкретном случае вам не нужны функции, чтобы уведомить View о любых изменениях, которые были сделаны с того момента, как вы заявили выше, что данные не будут изменены. Однако интерфейс здесь совсем не нужен, но вы должны его использовать.
Я бы рекомендовал использовать границы для вашего стиля.
Вы можете легко воссоздать этот макет, создав границы для каждой строки и каждого столбца и соответственно установите для них ряды и колпаны.
У вас будет 5 границ с colspan 2, эти границы позаботятся о ваших градиентных фонах для каждой строки и границ вдоль верхней и нижней части каждой строки. Тогда у вас будет 2 границы с rowspan 5, они будут обрабатывать границы столбцов. Представьте, что вы накладываете границы, чтобы сформировать визуальный эффект сетки, которым вы пользуетесь.
Для заголовка и внешней границы просто оберните всю сетку рамкой и стилем по мере необходимости.
Я бы рекомендовал хранить ваши стили в качестве ресурсов, чтобы вы могли хранить всю информацию о своем стиле в одном месте.
Позаботьтесь о том, как работает стиль, потому что он довольно мощный, но есть кривая обучения, так как она совсем не похожа на работу CSS. Я бы рекомендовал прочитать WPF Unleashed, если можно.
FILED UNDER : IT