0

проблема такова, будь я в вебе, я бы без проблем это сделал, но никак не приходит в голову, как мне циклом выводить с БД список услуг вёрсткой, как на картинке, направьте в нужную сторону пожалуйста:)

введите сюда описание изображения

введите сюда описание изображения

  • А сами как пробовали? Ведь это базовая самая вещь в WPF. Делайте класс с нужными данными, свойство коллекции этого класса, привязывание к нему ItemsControl с нужным видом, да и все. – EvgeniyZ Jul 23 '20 at 10:58
  • @EvgeniyZ В том то и дело, что я не профессионал в WPF, поэтому и спросил, спасибо, буду копать в сторону ItemsControl – StellarLay Jul 23 '20 at 11:46
  • 1
    Не надо быть профессионалом, надо пытаться сначала делать самостоятельно, а уж потом спрашивать. Вот я сейчас уверен, что вы без труда сделаете сами, сами разберётесь. А если дать вам ответ, поймёте ли вы тему? – EvgeniyZ Jul 23 '20 at 11:52
  • 1
    @EvgeniyZ Спасибо, получилось всё, теперь знаю об ItemsControlах) – StellarLay Jul 23 '20 at 13:41
  • @aepot спасибо большое за пример – StellarLay Jul 23 '20 at 13:42
  • @VladislavVelikoivanenko Я и не сомневался. Удачи! В следующий раз пробуйте сделать сами, это очень просто и если уж сильно застрянете, то приходите сюда. – EvgeniyZ Jul 23 '20 at 13:43
  • @EvgeniyZ проблема в том ещё, что я не нашёл нигде как отлавливать выбранный элемент, у меня же каждую услугу можно редактировать при нажатии на кнопку и удалять, так вот как при нажатии на кнопку "Редактировать" Открывались данные именно того элемента, на котором я нажал эту кнопку? – StellarLay Jul 24 '20 at 17:29
  • Делаете главный класс, который содержит в себе свойство команды (ICommand) и метод, который надо выполнить. Задаете этот класс, как DataContext, ну и привязываете. – EvgeniyZ Jul 24 '20 at 17:41
  • @EvgeniyZ Понял, спасибо огромное, буду пробовать – StellarLay Jul 24 '20 at 18:56
  • @EvgeniyZ Просто с MVVM у меня слабо, а все примеры, которые я нашёл в интернете, слишком навороченные, я не могу там понять что за что отвечает, может посоветуете где посмотреть инфу? – StellarLay Jul 26 '20 at 10:35
  • Да примеров полно, можете посмотреть все мои ответы по MVVM (найдете думаю через поиск), пытался везде дать максимально подробный ответ. За старт можно взять к пример данный ответ, вполне для понимания что и как. – EvgeniyZ Jul 26 '20 at 10:45
  • @EvgeniyZ понял, спасибо, ещё ситуация в том, что у меня все модели генерируются автоматически через Entity Framework и в них я вручную не могу менять что-то – StellarLay Jul 26 '20 at 10:56
  • Сама база является по сути Model слоем, сделайте обертку над ней, которая будет отдавать при помощи одного метода нужные данные, да и все. К примеру я в своем проекте тоже использую базу (правда LiteDB) и чтоб не писать постоянно открыть базу, взять из таблицы значение такое, преобразовать его в тип такой, я просто сделал удобные органы управления, которые сводятся к простому var value = db.GetValue<string>("Key"); или db.SetValue("Key", 123);. В EF конечно будет по другому, но суть думаю вы уловили. – EvgeniyZ Jul 26 '20 at 11:01
  • @EvgeniyZ Я прикрепил в вопросе скриншот того, как выглядит сгенерированная EF таблица, которая мне нужна, и получается логика такая, что мне нужно в отдельном классе например вытащить с неё нужные поля и уже с ними работать? Как же я туплю, пипец – StellarLay Jul 26 '20 at 11:05
  • Ну, начнем с того, что это уже явно не относится к изначальному вопросу, верно? По правилам SO 1 вопрос, без изменения его сути. Возник еще вопрос, оформляйте его, задавайте) По поводу базы, обычно делают так: Некий основной орган управления базой, который позволяет обратиться к таблице, записать значение и так далее, далее класс, который отвечает за определенную логику. – EvgeniyZ Jul 26 '20 at 11:20
  • Допустим, "человек", вот у вас класс class Person {}, он должен к примеру получить выписку счета из базы. Передаете класс базы через конструктор и делаете методы получения значений (class Person { private DataBase Base; public Person(DataBase base) => Base = base; public int Id {get;} public int Balance => Base.Persons.FirstOrDefault(x=>x.Id == Id); }) и уже дальше этот класс используется где надо (new Person(DataBase).Balance;). Это так, пример на коленке, но должно думаю хватить для понимания. А и да, не используйте русские названия в переменных! Ну не красиво это... – EvgeniyZ Jul 26 '20 at 11:23
  • @EvgeniyZ Всё, понял, спасибо огромное, а по поводу русских названий я полностью согласен, но БД не моя, от других людей, не могу там что-то менять – StellarLay Jul 26 '20 at 11:26
  • Ну так для этого есть специальные атрибуты, например [Column("Title")], где Title - это как зовется в базе, а само свойство уже зовете так, как положено. – EvgeniyZ Jul 26 '20 at 11:29
  • @EvgeniyZ понял – StellarLay Jul 26 '20 at 11:31

0 Answers0