Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > .NET: Базы данных > Работа с данными в проекте WPF Visual Studio с помощью ADO.NET Entity Framework


Автор: tumanovalex 28.01.14, 16:59
Сделал локальную базу данных SQL Compact, на основе ее создал модель ADO.NET, расположил данные на форме и запустил приложение. Внешний вид приложения оказался не тем, как я ожидал:
- плоские таблицы без строки со звездочкой для добавления новой строки;
- нет строки с кнопками навигации, удаления и сохранения;
- не нашел возможности создания binding source для связи двух таблиц. В приложении Windows Forms при размещении на форме DataGrid добалялись BindingSource и BindingNavigator.
Подскажите, пожалуйста, как сделать вид таблицы подобной таблице Windows Form и как создать элементы для связи и навигации.
MyWpf_01.zip (, : 202)

Автор: Craft 28.01.14, 17:43
Ваша проблема в том что вы пытаетесь рассматривать программирование на WPF с таким подходом как это работает в Windows Forms. Здесь такое не работает. Вторая проблема заключается в том что вы путаете ADO.NET и EF. Это не одно и то же. Если вы хотите все эти контролы использовать в WPF, то таких контролов нет. Есть в .NET 4.0 контрол DataGrid который работает с БД так как нужно. Но он не работает так как Windows Forms. Посмотрите как работает байндинг в WPF, и после того когда поймете что модель разработки под WPF отличается от Windows Forms, тогда у вас что-то выйдет. Испортить программу на WPF гораздо проще чем сделать нормально, если вы не уверены в своих силах, напишите на Windows Forms, так будет вам быстрее и проще.

Автор: tumanovalex 30.01.14, 15:40
Спасибо за ответ. Хотелось бы все-таки сделать в именно в WPF нормальную связь с данными. Попробую найти информацию по этому вопросу.

Автор: Craft 30.01.14, 18:22
Цитата tumanovalex @
Спасибо за ответ. Хотелось бы все-таки сделать в именно в WPF нормальную связь с данными. Попробую найти информацию по этому вопросу.

Я вас не обманываю. По умолчанию в WPF есть только DataGrid. Но если у вас есть возможность использовать сторонние контролы, то посмотрите на codeplex. Возможно там что-то сможете найти. Просто у меня фирме используем DevExpress и Telerik, поэтому с выбором контролов проблем не было.

Автор: tumanovalex 31.01.14, 14:50
1. Да я и не думал, что Вы обманываете. Просто думал, что есть обходные пути.
2. Вот как я понял назначение Entity Framework и LinQ:
- Entity Framework позволяет преобразовать различные модели данных (работу с данными через SQL, работа с XML и др.) в единую объектную модель;
- LinQ позволяет манипулировать этими объектами (единообразно для различных источников данных).
Правильно?
3. Решил на время отложить освоение WPF и попробовал создать простой проект в Windows Form.
Попробовал сделать простое приложение из двух связанных таблиц. Возникли следующие вопросы:
- Как сделать так, чтобы при добавлении контакта и телефона происходила автонумерация ключевого поля?
- Как сделать связь один-ко-многим между контактами и телефонами в приложении, т.е. при выборе контакта в таблицы Телефоны показывались бы только телефоны выбранного контакта?
- Как сделать так, чтобы при добавлении телефона в связанное поле размещался бы уникальных номер контакта?
- Хотелось бы сделать навигатор и для таблицы телефонов и разместить его над этой таблицей. Попробовал из панели элементов расположить на форме навигатор, он прилепился сразу к первому навигатору. Можно ли решить эту задачу? Проект прикрепляю
MyBase.zip (, : 190)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)