Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
1
WPF

Генерация имён при генерации элементов

17.01.2021, 08:15. Показов 3179. Ответов 18

Author24 — интернет-сервис помощи студентам
Есть задание создать приложение для заказа пицц следующего вида:
Генерация имён при генерации элементов

Сделал к ней бд в SQL Server, но это не суть важно.
Теперь хочу сделать автоматическую генерацию пицц со всеми атрибутами, считав данные с бд, пока создал шаблон в xaml.cs, но столкнулся с проблемой: как для каждой пиццы и её элементов генерировать новое имя, если засунуть шаблон в цикл?
Сам шаблон:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 public главная()
        {
            InitializeComponent();
            CheckBox checkBox1 = new CheckBox();
            SP1.Children.Add(checkBox1);
            Image image1 = new Image();
            image1.Source = new BitmapImage(new Uri("Фотки/1.jpg", UriKind.Relative)) { CreateOptions = BitmapCreateOptions.IgnoreImageCache };
            image1.ToolTip = "СоставСоставСоставСоставСоставСоставСоставСостав";
            SP1.Children.Add(image1);
            Label label11 = new Label();
            label11.Content = "Пепперони";
            SP1.Children.Add(label11);
            Label label12 = new Label();
            label12.Content = "380 рублей";
            SP1.Children.Add(label12);
            StackPanel SP11 = new StackPanel();
            SP11.Orientation = Orientation.Horizontal;
            SP11.HorizontalAlignment = HorizontalAlignment.Center;
            SP1.Children.Add(SP11);
            Button button11 = new Button();
            button11.Content = "-";
            SP11.Children.Add(button11);
            TextBox textBox1 = new TextBox();
            textBox1.Text = "0";
            SP11.Children.Add(textBox1);
            Button button12 = new Button();
            button12.Content = "+";
            SP11.Children.Add(button12);
        }
Добавлено через 1 час 21 минуту
Ну или есть ли такой тип переменной или функция, которые позволят хранить названия элементов, а так же изменять их внутри себя и использовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2021, 08:15
Ответы с готовыми решениями:

Скрипт генерации имён
за домен и хостинг форума приходится платить из собственного кармана, т,к, народ блокирует рекламу...

Ускорение генерации/уничтожения имён Textures,Buffers, etc
Доброго времени! Столкнулся с такой проблемой. Есть набор графический объектов, которые при...

Мусор при генерации элементов массива
Задание: С помощью генератора случайных чисел занести в массивы М(15) и А(12) числа из диапазона от...

Генерация случайных числе. Прерывание генерации
По условию вводится однозначное натуральное M, Можно ли представить число в виде суммы квадратов...

18
Модератор
Эксперт .NET
15464 / 10710 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
17.01.2021, 13:04 2
Цитата Сообщение от Wiis Посмотреть сообщение
как для каждой пиццы и её элементов генерировать новое имя, если засунуть шаблон в цикл?
Сам шаблон:
Для начала изучить азы WPF.
В WPF есть шаблоны элементов и шаблоны данных.
А то, что вы показали - это чёрт знает, что. Но точно не шаблон.
Шаблоны задаются ИСКЛЮЧИТЕЛЬНО на XAML.
XAML - это основной язык WPF.
Code Behind в WPF не используется. Он должен оставаться пустым.
Вообще забудьте, что он существует и никогда даже не открывайте файлы "*.xaml.cs".
0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 13:16  [ТС] 3
Добавлено через 6 минут
Цитата Сообщение от Элд Хасп Посмотреть сообщение
никогда даже не открывайте файлы "*.xaml.cs".
А как тогда предлагаете писать как минимум обработчики?
0
Эксперт .NET
10563 / 6487 / 1506
Регистрация: 25.05.2015
Сообщений: 19,653
Записей в блоге: 14
17.01.2021, 13:18 4
Для этого есть команды.
0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 13:28  [ТС] 5
Может вы меня не правильно поняли...
Вот скрин основной страницы, в MainWindow просто Frame, который загружает главную страницу, Её кода и самого приложения.
Миниатюры
Генерация имён при генерации элементов   Генерация имён при генерации элементов   Генерация имён при генерации элементов  

0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 13:37  [ТС] 6
Там ещё есть стили, но они к делу не сильно относятся.
0
Эксперт .NET
10563 / 6487 / 1506
Регистрация: 25.05.2015
Сообщений: 19,653
Записей в блоге: 14
17.01.2021, 13:40 7
Нарисовать-то вы нарисовали, только программы пишутся совсем не так.
0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 13:48  [ТС] 8
Ок, а если убрать код который написан в xaml.cs, то получится, что программы пишутся так? Тот код я написал для динамической генерации элементов.
0
Модератор
Эксперт .NET
15464 / 10710 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
17.01.2021, 13:52 9
Цитата Сообщение от Wiis Посмотреть сообщение
А как тогда предлагаете писать как минимум обработчики?
Для кнопок, меню и других элементов, у которых есть свойство Command, надо биндить команды.
Для остальных, в зависимости от требуемой функции, или к событиям привязываются команды, или создаются Behavior, AP свойства.

Цитата Сообщение от Wiis Посмотреть сообщение
Может вы меня не правильно поняли...
Мы вас правильно поняли, а вы нас не хотите понимать.

Это не шутка, а настоятельная рекомендация (которая для начинающих является ОБЯЗАТЕЛЬНЫМ правилом): НЕ ИСПОЛЬЗУЙТЕ Code Behind.

Все обращения (и тем более создание) к UI элементам в WPF производятся на XAML.
Это основной язык WPF.
C# вспомогательный язык и используется там где надо расширить дефолтные возможности XAML.
На нём создаются: Контекст Данных (ViewModel), конвертеры, AP и DP свойства, Behavior, триггера, различные вспомогательные типы (контейнеры, локаторы, мессенджеры, прокси и т.п.).
Но после создания эти типы используются в XAML.

Добавлено через 3 минуты
Цитата Сообщение от Wiis Посмотреть сообщение
Ок, а если убрать код который написан в xaml.cs, то получится, что программы пишутся так? Тот код я написал для динамической генерации элементов.
У Вас должен быть создан Контекст Данных.
Обычно его называют ViewModel.
В нём будет свойство-коллекция типа ObservableCollection.
В ней элементы с первичными данными.
В Окне ItemsControl (или его наследник) привязанный к этому свойству.
В шаблоне данных элемента задаётся его визуальная форма - все те элементы которые вы задавали на C#.
Всё, что касается UI элементов - делается исключительно в XAML.
0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 14:04  [ТС] 10
То есть возможно прописать генерацию заранее неизвестного количества элементов в xaml? Я обычно таким и не занимался (созданием элементов через C#), но в данном случае я не знаю как сделать по другому.

Добавлено через 3 минуты
И при бинде команды она же всё равно прописывается в xaml.cs, и не может оставаться пустым, правильно?
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Code Behind в WPF не используется. Он должен оставаться пустым.
0
Модератор
Эксперт .NET
15464 / 10710 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
17.01.2021, 14:11 11
Цитата Сообщение от Wiis Посмотреть сообщение
То есть возможно прописать генерацию заранее неизвестного количества элементов в xaml?
Конечно.
Вы создаёте коллекцию с заранее неизвестным количеством элементов.
И любой списочный элемент (ItemsControl и его наследники) все их отобразят в любом порядке.
Посмотрите тему "WPF vs WinForms (для начинающих)" из ссылки в подписи моего поста.

Добавлено через 1 минуту
Цитата Сообщение от Wiis Посмотреть сообщение
И при бинде команды она же всё равно прописывается в xaml.cs, и не может оставаться пустым, правильно?
Нет!
Реализация команды задаётся в Контексте Данных (ViewModel).
Там же где у вас будут находится и сами Данные.
Поэтому команда может непосредственно работать с Данными не зная об их визуальной форме.
0
Эксперт .NET
10563 / 6487 / 1506
Регистрация: 25.05.2015
Сообщений: 19,653
Записей в блоге: 14
17.01.2021, 14:24 12
Wiis, почитайте Литература по WPF
Нахрапом это не осилить.
0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 14:28  [ТС] 13
Ну, нас в колледже после WF учат работать так), но ладно, спасибо, осталось понять что с этим делать)
0
Модератор
Эксперт .NET
15464 / 10710 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
17.01.2021, 14:35 14
Цитата Сообщение от Wiis Посмотреть сообщение
Ну, нас в колледже после WF учат работать так
Вас неправильно учат.
C# это язык ООП.
А приложение в ООП должно ОБЯЗАТЕЛЬНО реализовывать один из паттернов.
Их освоение происходит на этапе начального изучения Консоли.
Для Консоли и Форм основные паттерны это MVC и MVP.
Пока вы их не научились реализовывать вам даже приступать к Формам бессмысленно.
Посмотрите тему от Storm23 Архитектура ПО в WinForms (FAQ & HowTo)
Вы таким образом реализовали Формы?

Если да, то никаких проблем с пониманием WPF + MVVM не должно быть.

Добавлено через 2 минуты
А если ваш курс программирования построен ИЗНАЧАЛЬНО неверно, то к сожалению вам придётся очень много изучать заново.
А иначе так и останетесь на уровне начинающего недоучки и кроме ваяния горы костылей ничему больше не научитесь.
0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 15:00  [ТС] 15
Я понял, и нет, мы не так реализовывали формы, у нас главное результат, а как он получился в большинстве случаев не важно.

Добавлено через 17 минут
Ладно, раз генерацию сделать сейчас у меня не получится, придётся делать костылями и без динамического добавления и учится делать правильно, F)
0
Модератор
Эксперт .NET
15464 / 10710 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
17.01.2021, 16:34 16
Wiis, по интерфейсу Форума:
 Комментарий модератора 
При обращении к другому пользователю указывайте его ник в тегах [NICK][/NICK] или цитируйте часть сообщения на которое отвечаете.
В противном случае ему не придёт уведомление о вашем обращении и вы можете не дождаться ответа на своё сообщение.

Для вставки ника: введите ник, выделите его и нажмите кнопку "Динамик" на панели редактора сообщений.
Или кликните по нику автора сообщения в панели слева от текста его сообщения.

Для вставки цитаты: выделите нужную цитату, должна появиться всплывающая кнопка "Цитировать", нажмите её.


Добавлено через 2 минуты
Цитата Сообщение от Wiis Посмотреть сообщение
Ладно, раз генерацию сделать сейчас у меня не получится, придётся делать костылями и без динамического добавления и учится делать правильно, F)
Если время позволяет, я всё же рекомендовал бы сделать сначала и правильно.
Если решитесь - я по возможности постараюсь помочь.
Думаю, не только я - другие тоже помогут.
Помогать в создании костылей - желания мало.

Добавлено через 2 минуты
Цитата Сообщение от Wiis Посмотреть сообщение
мы не так реализовывали формы, у нас главное результат,
К сожалению не только вас так учат.
Современное преподавание программирования практически полностью игнорирует ООП.
Учат так же как было полвека назад для Фортрана, Алгола, Бейсика и т.п.
0
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
17.01.2021, 17:16  [ТС] 17
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если время позволяет, я всё же рекомендовал бы сделать сначала и правильно.
Если решитесь - я по возможности постараюсь помочь.
Спасибо, но сейчас времени не особо, да и пока разберусь... Но как разберусь воспользуюсь по вохможности)
0
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
18.01.2021, 08:30 18
Цитата Сообщение от Wiis Посмотреть сообщение
у нас главное результат, а как он получился в большинстве случаев не важно.
Дайте преподу линк на этот треш, пусть присоединяется к дискуссии
1
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
18.01.2021, 08:39  [ТС] 19
Цитата Сообщение от Почтальон Посмотреть сообщение
Дайте преподу линк на этот треш, пусть присоединяется к дискуссии
Понятия не имею как цитировать с телефона, но предложением поделится этим с приподом возможно на днях воспользуюсь)
0
18.01.2021, 08:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2021, 08:39
Помогаю со студенческими работами здесь

Рандомная генерация уровня. Смена направления генерации объектов
Всем привет. Не могу сменить направление генерации объектов. Требуется после 15 созданных объектов...

Генерация уникальных имен файлов
Добрый день уважаемые коллеги . Проблема такова не могу создать файл с уникальным именем .Есть...

Генерация имен в случайном порядке
Всем привет, помогите мне пожалуйста, мне нужна программа ,генерирующая в случайном порядке Имена,...

JAXB пространство имен, генерация классов из xsd
День добрый ! Хобийно занимаюсь кодингом (программированием) очень мне нравится то дело . ...

Проблема при генерации
Создаю 2д платформер на Юнити, столкнулся с проблемой: при генерации, финальная платформа...

Функция случайной генерации элементов массива
описать функцию случайной генерации элементов массива. описать функцию для нахождения среднего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru