Исходный код для примеров привязки данных в WPF
57WPF --- Привязка, команды и стили WPF --- Исходный код для примеров привязки данных в WPF
Предварительные условия для запуска примеров
Для запуска примеров будет использоваться сущностная модель базы данных AutoShop. При создании запросов к базе данных будет использоваться LINQ to Entities.
Создание проекта и базы данных AutoShop
Создайте новый проект WPF под названием DataBinding.
Откройте обозреватель серверов, выбрав команду в меню Вид --> Обозреватель серверов (View --> Server Explorer). Щелкните правой кнопкой мыши Подключения данных (Data Connections) и выберите пункт Создать новую базу данных (Create New SQL Server Database). В открывшемся диалоговом окне подключитесь к SQL Server, установленному на вашей локальной машине (с именем (local)), и укажите в поле имени базы данных AutoShop:
Сейчас база данных AutoShop совершенно пуста и не содержит никаких объектов (таблиц, хранимых процедур и т.п.). Для добавления новой таблицы щелкните правой кнопкой мыши на узле Tables (Таблицы) и выберите в контекстном меню пункт Add New Table:
Далее создайте таблицу CarTable, используя следующий SQL-код:
CREATE TABLE [dbo].[CarTable] ( [ID] INT NOT NULL PRIMARY KEY, [CategoryID] TINYINT NOT NULL, [CategoryName] VARCHAR(128), [ModelName] VARCHAR(128), [ModelNumber] VARCHAR(128), [Cost] FLOAT, [Description] TEXT, [ImageCar] VARCHAR(128) )
Далее необходимо будет сгенерировать сущностную модель базы данных AutoShop.
Сначала щелкните правой кнопкой мыши на проекте, выберите в контекстном меню пункт Add --> New Item (Добавить --> Новый элемент) и затем укажите в списке вариант ADO.NET Entity Data Model (Модель ADO.NET EDM). Измените имя модели данных. Поскольку используется база данных AutoShop, в качестве имени имеет смысл указать AutoShop.edmx:
Щелкните на кнопке Add (Добавить), после чего запустится мастер создания сущностной модели данных (Entity Data Model Wizard):
Сущностную модель данных можно создать с нуля или же сгенерировать ее на основе имеющейся базы данных. Здесь необходимо сгенерировать EDM из базы данных AutoShop, поэтому выберите значок Generate from database (Создать из базы данных) и щелкните на кнопке Next (Далее) для перехода на экран подключения к данным:
Этот экран используется для выбора базы данных, на основе которой будет сгенерирована EDM-модель. На рисунке показано, что выбрана существующая база данных AutoShop, которая ранее была подключена к SQL Server 2012.
Содержимое окна может отличаться в зависимости от местоположения базы данных. Выберите нужное соединение и щелкните на кнопке Next для перехода к следующему экрану мастера, в котором выберите таблицы. Щелкните на кнопке Finish (Готово) для закрытия окна мастера и генерации модели.
Теперь нужно заполнить базу данных AutoShop, для чего будут применяться простейшие запросы LINQ to Entities. Откройте файл MainWindow.cs в вашем проекте и измените код класса MainWindow на следующий:
public partial class MainWindow : Window { // Вставка данных в б/д посредством LINQ public static void insertToDataBase(List<CarTable> lct) { AutoShopEntities context = new AutoShopEntities(); foreach (CarTable ct in lct) context.CarTables.AddObject(ct); context.SaveChanges(); } public MainWindow() { InitializeComponent(); #region List<CarTable> lct = new List<CarTable> { new CarTable { ID = 1, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Alfa Romeo", ModelNumber = "145", Cost = 230000, Description = "В 2000 году выпущена спецсерия Alfa Romeo 145 – «Edizione». Она представлена в комплктациях Sportiva и Limited. Спортивная версия оснащенa автоматическим климат-контролем, системой центрального запирания дверей и 16-дюймовыми колесами из светлого металла. Педали, коробка передач окантованы алюминием. Цвета: красный, серебристо-серый, темно-синий. На моделях Limited установлена эмблема \"Alfa Romeo 500 Limited\", подтверждающая эксклюзивность серии.", ImageCar = "images/alfaromeo-145.jpg" }, new CarTable { ID = 2, CategoryID = 3, CategoryName = "Бизнес-класс", ModelName = "Alfa Romeo", ModelNumber = "Spider", Cost = 650000, Description = "В серийное оснащение всех Alfa Romeo Spider входит мягкая крыша с полным электроприводом и обогреваемым задним стеклом, CD-аудиосистема, зеркала заднего вида с электроприводами и подогревом, выхлопная система с двумя патрубками. Безопасность новинки находится на высоком уровне благодаря 5 подушкам безопасности, двум дугам жесткости кузова, расположенным позади кресел, системам ABS, EBD и фирменной системе динамической стабилизации VDC. Для более требовательных клиентов предлагается версия Exclusive, включающая в себя круиз-контроль, кресло водителя с электроприводами и памятью, двухзонный климат-контроль, охлаждаемый бокс в подлокотнике между креслами, кожаные кресла с трехступенчатым обогревом.", ImageCar = "images/alfaromeo-spider.jpg" }, new CarTable { ID = 3, CategoryID = 3, CategoryName = "Бизнес-класс", ModelName = "Audi", ModelNumber = "A3", Cost = 1100000, Description = "Немецкая компания Audi представила новое поколение Audi A3. Компактный хэтчбек получил шестиугольную решетку радиатора, стильные фары со светодиодными полосками дневных ходовых огней и передний бампер с мощными воздухозаборниками. Профиль авто выглядит скоростным и динамичным, а двойная выхлопная труба и спойлер на задней двери показывают спортивность автомобиля. Интерьер авто имеет полноценную операционную систему, возможность выхода в Интернет, навигацию, Bluetooth и порт для карт памяти.", ImageCar = "images/audi-a3.jpg" }, new CarTable { ID = 4, CategoryID = 4, CategoryName = "Премиум-класс", ModelName = "Audi", ModelNumber = "R8", Cost = 4100000, Description = "Компания Audi представила обновленный спортивный суперкар Audi R8. Экстерьер стал еще более динамичным. Авто получил шестиугольную решетку радиатора, а для версии V10 с хромированными полосами, а также новый передний бампер с мощными воздухозаборниками, на который дополнительно может быть установлен сплиттер из карбона. Теперь светодиодные фары и динамические указатели поворотов входят в стандартное оснащение. В интерьере изменений немного, но можно выделить иные подрулевые переключатели, стрелки на приборах и спортивные ковшеобразные сидения с улучшенной боковой поддержкой.", ImageCar = "images/audi-r8.jpg" }, new CarTable { ID = 5, CategoryID = 3, CategoryName = "Бизнес-класс", ModelName = "Audi", ModelNumber = "TT", Cost = 900000, Description = "В 2010 году показал рестайлинговые модели Audi TT Coupe и Roadster. Перемены коснулись переднего бампера, воздухозаборников, решетки радиатора, светодиодных огней \"дневного света\", увеличившихся диффузоров и выхлопных труб. Кроме того, TT Coupe и TT Roadster слегка выросли в длину - примерно на два сантиметра. Помимо этого, к палитре окраски авто были добавлены новые цвета кузова.", ImageCar = "images/audi-tt.jpg" }, new CarTable { ID = 6, CategoryID = 4, CategoryName = "Премиум-класс", ModelName = "Bentley", ModelNumber = "Brooklands", Cost = 15000000, Description = "Эксклюзивное роскошное купе высшего класса ручной сборки сегмента Premium F, тираж 550 экземпляров. Индивидуальный заказ опций и аксессуаров от ателье Mulliner. Производство Великобритании.", ImageCar = "images/bentley-br.jpg" }, new CarTable { ID = 7, CategoryID = 3, CategoryName = "Бизнес-класс", ModelName = "BMW", ModelNumber = "7-Series", Cost = 950000, Description = "Немецкий автопроизводитель из Баварии показал новый BMW 7-Series. Внешние изменения седана премиум-класса включают в себя: новые высокотехнологичные фары, измененный передний бампер, обновленная решетка радиатора, измененный задний бампер, дневные ходовые огни на светодиодах. По сравнению с предшественником авто снизился на 8 сантиметров, остальные размеры остались без изменений. А версия ActiveHybrid 7 может похвастаться обновлением показателей по расходу топлива.", ImageCar = "images/bmw-7.jpg" }, new CarTable { ID = 8, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "Chery", ModelNumber = "Karry", Cost = 290000, Description = "В 2007 году модельный ряд автомобилей Chery в Украине пополнился новой моделью Chery Karry. Chery Karry будет представлен в трех вариантах комплектации. В «базе» автомобиль оснащен кондиционером, гидроусилителем руля, семиместным салоном. В максимальной комплектации Chery Karry оснащен, системой безопасности ABS, подушкой безопасности водителя, передними стеклоподъемниками, а также электроприводом внешних зеркал заднего вида. Модель Chery Karry, создана на базе Chery Amulet. Объем багажного отделения этой модели очень легко увеличивается в несколько раз. Наличие задней рессорной подвески, говорит о высоких возможностях и выносливости Chery Karry.", ImageCar = "images/chery-k.jpg" }, new CarTable { ID = 9, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "Chery", ModelNumber = "M1", Cost = 200000, Description = "На выставке в апреле 2009 года показали новый Chery M1. Модный дизайн автомобиля привлекает огромное внимание. В оснащение машины входит: ABS+EBD, подушки безопасности, противоугонная система , электрический центральный замок, обогрев зеркал заднего вида. Производительность хорошая,если брать автомобили такого же уровня. Также машина оснащена цифровой системой: дисплей информационной помощи и система помощи парковки. Двигатель 1,0-литровый или 1,3-литровй с 5-ступенчатой автоматической или механической коробкой передач", ImageCar = "images/chery-m.jpg" }, new CarTable { ID = 10, CategoryID = 3, CategoryName = "Бизнес-класс", ModelName = "BMW", ModelNumber = "X6", Cost = 2150000, Description = "В июле 2009 года на рынке дебютировали BMW X5 M и BMW X6 M. Модели были показаны на мотор-шоу в Нью-Йорке. В техническое оснащение двух новых M-моделей баварского концерна входит система Dynamic Performance Control, обеспечивающая оптимальное распределение крутящего момента между колесами, а кроме этого: модифицированная подвеска, система контроля ходовой, камера заднего вида, система отображения информации на лобовом стекле, система стабилизации ASR.", ImageCar = "images/bmw-x6.jpg" }, new CarTable { ID = 11, CategoryID = 4, CategoryName = "Премиум-класс", ModelName = "Dodge", ModelNumber = "Viper SRT", Cost = 6500000, Description = "Dodge Viper SRT - пятое поколение спортивного 2-дверного купе. Мощность двигателя V10 составляет 640 л.с.", ImageCar = "images/viper.jpg" }, new CarTable { ID = 12, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Chevrolet", ModelNumber = "Lacetti", Cost = 360000, Description = "Элегантный, и в то же время спортивный вид Chevrolet Lacetti никого не оставит равнодушным. Просторный салон, рассчитанный на 5 взрослых пассажиров, с продуманным расположением разнообразных отделений для вещей. Три варианта исполнения кузова – седан, хэтчбек и универсал - этот стремительный автомобиль всегда будет соответствовать Вашему образу жизни. Chevrolet Lacetti оснащен противобуксовочной и антиблокировочной системами, дисковыми тормозами передних и задних колес, фронтальными и боковыми подушками безопасности.", ImageCar = "images/chev-l.jpg" }, new CarTable { ID = 13, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Chevrolet", ModelNumber = "Traverse", Cost = 560000, Description = "В облике обновленного Chevrolet Traverse двойная решетка радиатора, а нижняя часть решетки почти синхронно повторяет профиль верхней с хромированной окантовкой. Задняя часть авто изменилась за счет новых фонарей и новой ниши для номерного знака. Chevrolet Traverse предлагается с передним или полным приводом в нескольких комплектациях.", ImageCar = "images/chev-t.jpg" }, new CarTable { ID = 14, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Honda", ModelNumber = "CR-V", Cost = 650000, Description = "Компания Honda представила новое поколение популярного кроссовера CR-V. В экстерьере передняя часть авто имеет выраженную решетку радиатора с тремя горизонтальными планками и бампер новой конструкции. Фары слегка прищурены и глубоко простираются на крылья, а задние вертикальные фонари получили приятный глазу трехмерный эффект. В интерьере особое внимание японцы уделили звукоизоляции. В целом новый Honda CR-V стал более солидным и агрессивным.", ImageCar = "images/honda-crv.jpg" }, new CarTable { ID = 15, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Honda", ModelNumber = "NSX", Cost = 450000, Description = "В 2001 году с Honda NSX также провели частичные изменения. Впервые был изменен дизайн экстерьера, в частности, кузов получил новую переднюю оптику. Появилась еще одна новая модификация. Новые фары закрыты поликарбонатным колпаком, измененен капот, крышка багажника, бамперы. Появилась еще одна новая модификация. Благодаря доработкам удалось значительно улучшить аэродинамику машины.", ImageCar = "images/honda-nsx.jpg" }, new CarTable { ID = 16, CategoryID = 3, CategoryName = "Бизнесс-класс", ModelName = "Hyundai", ModelNumber = "Accent", Cost = 820000, Description = "Hyundai на автошоу в Пекине показал свою новинку Hyundai Accent 2012 модельного года. Новый Hyundai Accent существенно улучшился во всех областях по сравнению с предыдущей моделью. Hyundai Accent доступен с двигателями 1.4 и 1.6 л. Новый Accent значительно отличается от предшествующего. Внешний дизайн плавный и мягкий, интерьер полностью обновлен.", ImageCar = "images/h-ac.jpg" }, new CarTable { ID = 17, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Hyundai", ModelNumber = "Sonata 2.0", Cost = 460000, Description = "Несмотря на то, что по ценовому сегменту Sonata должна быть сопоставима с Toyota Camry, Honda Accord и Chevy Malibu, внешне машина замахивается на более высокий класс — четырехдверное купе, что ставит ее на одну ступень с VW Passat CC. И хотя о дизайне автомобиля можно спорить, все согласятся, что у Sonata появилось то, чего не было раньше — свое уникальное лицо.", ImageCar = "images/h-son.jpg" }, new CarTable { ID = 18, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "Kia", ModelNumber = "Rio", Cost = 350000, Description = "Премьера третьего поколения модели состоялась на автосалоне в Нью-Йорке в апреле 2011 года. Автомобиль получил новый внешний дизайн в стиле последних моделей производителя автомобилей из Кореи. Расход топлива нового Kia Rio снизился в городе составляет 7,6 литров, а за городом 4,9 литров на 100 километров. Внешне автомобиль изменен полностью и предлагает новую платформу и стиль, знакомый нам по последней версии Kia Optima и Sportage 2011. Также, на новом Kia Rio установлена система Vehicle Stability Management (VSM), которая координирует работу систем ESC и ABS и помогает водителю сохранить контроль над транспортным средством в самой сложной ситуации на дороге.", ImageCar = "images/kia-r.jpg" }, new CarTable { ID = 19, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "Kia", ModelNumber = "Joice", Cost = 230000, Description = "Joice с колесной базой 2720 мм создан на платформе модели Clarus. Однако по вместимости Carens и Joice довольно близки и вмещают максимум по 7 пассажиров. Покупатель получает автоматическую климатическую установку, аудиосистему с 6 динамиками, почти полный «электропакет» и, конечно, расширенные возможности по трансформации салона. Например, спинки сидений среднего и заднего рядов укладываются вровень с подушками, создавая два полноценных спальных места.", ImageCar = "images/kia-j.jpg" }, new CarTable { ID = 20, CategoryID = 3, CategoryName = "Бизнес-класс", ModelName = "Mercedes-Benz", ModelNumber = "C250", Cost = 1450000, Description = "Компания Mercedes-Benz на Женевском автосалоне 2011 года представила новую модификацию линейки C-Class — Mercedes-Benz C-Class Coupe. Для рынка Европы C-Class Coupe оснащается как дизельными, так и бензиновыми двигателями. Среди ярких особенностей машины разработчик выделяет дизайн кузова, мощные бензиновые двигатели с прямым впрыском топлива и новейшие телекоммуникационные системы (т.е. большие дисплеи, беспроводная связь, прогноз погоды и гугло-поиск на борту).", ImageCar = "images/merc-b-c.jpg" }, new CarTable { ID = 21, CategoryID = 4, CategoryName = "Премиум-класс", ModelName = "Mercedes-Benz", ModelNumber = "SLR 5.4", Cost = 12000000, Description = "В 2007 году начались продажи SLR Roadster. Облик родстера получился еще более динамичным, чем у купе. Разгоняет новый родстер двигатель 626-сильный AMG V8 с компрессором. Сумасшедший максимальный крутящий момент в 780 Нм передает на колеса пятиступенчатый «автомат» AMG Speedshift-R. Двигатель развивает максимальную тягу к 3250 об/мин, и вплоть до 5000 об/мин она существенно не меняется. Передачи можно переключать и самому, для этого в КПП предусмотрены три ручных режима – Sport, Supersport и Race. В салоне встречают карбоновые ковшеобразные сиденья с регулируемой подушкой, имеется раздельный климат-контроль. Руль – многофункциональный, с «формульными» лепестками переключения коробки передач. CD-ресивер совмещен с навигацией и высококлассной акустикой BOSE.", ImageCar = "images/merc-b-s.jpg" }, new CarTable { ID = 22, CategoryID = 3, CategoryName = "Бизнес-класс", ModelName = "Mercedes-Benz", ModelNumber = "S500", Cost = 1700000, Description = "В 2009 году вышла обновленная версия автомобиля Mercedes-Benz S-Class. Обновленный S-Class получил видоизмененный передний бампер, решетку радиатора, новый дизайн колесных дисков, а также светодиодную оптику. Интерьер также претерпел лишь незначительные косметические изменения. Гамма двигателей останется прежняя. Изменения коснуться лишь доработок, направленных на улучшение экологичности.", ImageCar = "images/merc-b-s500.jpg" }, new CarTable { ID = 23, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Nissan", ModelNumber = "Bluebird", Cost = 190000, Description = "Bluebird - автомобиль среднего класса, европейский вариант Altima. В январе 1996 года появилось новое поколение Nissan Bluebird, которое выпускается только в кузове седан. Все модели отличаются отличным качеством сборки и высоким уровнем комплектации.", ImageCar = "images/nissan-b.jpg" }, new CarTable { ID = 24, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "Nissan", ModelNumber = "Largo 2.0", Cost = 200000, Description = "Largo – это минивэн высокого класса, созданный по образу и подобию Nissan Serena, но с гораздо более широким и комфортным салоном. Он был выпущен в 1993 году. В салоне могут разместиться 7 или 8 человек; сиденья расположены в три ряда. Особенную популярность завоевала модификация Highway Star, «одетая» в тюнинговые запчасти и создающая чувство некой спортивности. Индивидуальной чертой также является белое оформление внутреннего и внешнего оснащения. Среди моделей-однокласников она отличается отличными ходовыми характеристиками и отменной устойчивостью на высокоскоростных дорогах.", ImageCar = "images/nissan-l.jpg" }, new CarTable { ID = 25, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Nissan", ModelNumber = "Teana", Cost = 520000, Description = "На Пекинском Автосалоне 2008 состоялся мировой дебют нового седана премиум-класса Nissan Teana. Новый автомобиль стал воплощением концепции «жизнь сегодня», делающей основные акценты на современной роскоши и релаксации. Новая Teana будет доступна с двумя шестицилиндровыми двигателями объемом 2,5 литра и 3,5 литра, которые будут агрегатироваться с бесступенчатым вариатором XTRONIC CVT. Эта комбинация обеспечит идеальные рабочие характеристики и максимальный комфорт в дальних поездках.", ImageCar = "images/nissan-t.jpg" }, new CarTable { ID = 26, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "Renault", ModelNumber = "Logan", Cost = 300000, Description = "Автомобиль претерпел ощутимые изменения, стал более серьезным и солидным. Это коснулось как интерьера: автомобиль получил новую оптику, более интересные бампера, окрашенные в цвет кузова, широкую решетку радиатора, очень удачную хромированную накладку багажника, которая добавила автомобилю элегантности и спойлер багажника, с которым обновленный Logan выглядит более динамичным и интересным, а также абсолютно новые зеркала, которые улучшили обзорность. Полностью был изменен и интерьер автомобиля, который претерпел видимые изменения, в автомобиле все новое: руль, панель приборов, консоль, обивка сидений. Добавился задний подголовник для среднего пассажира на задних сидениях, а также изменилась и обивка дверей, ручки дверей в салоне стали очень удобными, рука сама ложиться под них.", ImageCar = "images/reno-l.jpg" }, new CarTable { ID = 27, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Renault", ModelNumber = "Sandero", Cost = 440000, Description = "Stepway представляет собой вседорожную версию хэтчбека Renault Sandero с увеличенным на 20 мм клиренсом (до 175 мм) и защитным обвесом кузова. Автомобиль выпускается в комплектации с 84-сильным двигателем объемом 1,6 л. и МКП5, а также с двигателем 102 л.с. и АКП4.", ImageCar = "images/reno-s.jpg" }, new CarTable { ID = 28, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Volkswagen", ModelNumber = "Cross Polo", Cost = 400000, Description = "В 2010 году дебютировал новый Volkswagen Cross Polo. Автомобиль стал значительно солиднее, технологичнее, безопаснее, сохраняя при этом свою компактность экономичность для повседневной езды в городских пробках. Мощный кузов, слегка скошенные фары, соединенные решеткой радиатора, выразительные линии кузова.", ImageCar = "images/vw-c.jpg" }, new CarTable { ID = 29, CategoryID = 2, CategoryName = "Средний-класс", ModelName = "Volkswagen", ModelNumber = "Touareg", Cost = 600000, Description = "Volkswagen Touareg 2010 модельного года стал менее «прожорливым» и более «чистым». Кроме того, автомобиль стал на 2 см ниже и на 4,3 см длиннее, в то время как его колесная база выросла на 4 см. Еще внедорожник «сбросил» 208 кг веса. Из внешних изменений можно отметить обновленную решетку радиатора, а также, если верить официальному пресс-релизу, «более пропорциональный силуэт» и «выразительные фонари заднего освещения».", ImageCar = "images/vw-t.jpg" }, new CarTable { ID = 30, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "ВАЗ", ModelNumber = "2114", Cost = 250000, Description = "ВАЗ 2114 - пятиместный ''хэтчбек'', созданный на базе автомобиля LADA 2109 с видоизмененной формой кузова, улучшающей аэродинамику автомобиля. Современный дизайн, обновленный комфортабельный интерьер салона, оснащенного новой панелью приборов, создают восприятие модернизированной машины как новой модели, что, несомненно, будет по достоинству оценено владельцами этого автомобиля.", ImageCar = "images/vaz-2114.jpg" }, new CarTable { ID = 31, CategoryID = 1, CategoryName = "Эконом-класс", ModelName = "ГАЗ", ModelNumber = "3120", Cost = 280000, Description = "Это машина для тех, кто привык полагаться на себя и не желает зависеть даже от сил природы. ГАЗ 3120 \"Комбат\" способен преодолевать подъемы величиной до 30 градусов и брод глубиной до 0,6 метра. ГАЗ 3120 - это эффектный и самобытный автомобиль для энергичного человека, который не мыслит полноценной жизни без движения. Постоянный полный привод помимо исключительной проходимости обеспечивает автомобилю дополнительную устойчивость, высокую среднюю скорость при движении на скользких дорогах и высокий уровень активной безопасности.", ImageCar = "images/gaz.jpg" } }; #endregion MainWindow.insertToDataBase(lct); } }
Внимание скомпилируйте этот пример только 1 раз, а затем удалите коллекцию lct, как и сам метод insertToDataBase. Структура базы данных CarTable должна выглядеть теперь:
Добавьте в проект папку images, в которую добавьте рисунки из следующего архива - DataBindingImages.rar. В Visual Studio укажите действие при построении (Build Action) для этих картинок в Content, а так же опцию Copy Always для копирования в выходной каталог. Они будут использоваться для демонстрации форматированного вывода привязки данных.
Файл XmlDataProviderFile.xml
Для демонстрации использования поставщика данных XmlDataProvider, будет использоваться этот файл, который содержит данные из базы данных в виде XML-документа. Загрузить его можно по следующей ссылке - XmlDataProviderFile.xml.
Метод GetAutoById
Метод GetAutoById будет использоваться для получения объекта CarTable из базы данных по его ID. Добавьте его в класс MainWindow:
public static CarTable GetAutoById(int id)
{
AutoShopEntities context = new AutoShopEntities();
return context.CarTables.Where(p => p.ID == id).FirstOrDefault();
}
Данный метод настолько прост, потому что мы используем Entity Framework для работы с базой данных. При использовании классического вызова ADO.NET код получился бы несколько больше.