0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
|
||||||
1 | ||||||
WPF Генерация имён при генерации элементов17.01.2021, 08:15. Показов 3179. Ответов 18
Есть задание создать приложение для заказа пицц следующего вида:
Сделал к ней бд в SQL Server, но это не суть важно. Теперь хочу сделать автоматическую генерацию пицц со всеми атрибутами, считав данные с бд, пока создал шаблон в xaml.cs, но столкнулся с проблемой: как для каждой пиццы и её элементов генерировать новое имя, если засунуть шаблон в цикл? Сам шаблон:
Ну или есть ли такой тип переменной или функция, которые позволят хранить названия элементов, а так же изменять их внутри себя и использовать?
0
|
17.01.2021, 08:15 | |
Ответы с готовыми решениями:
18
Скрипт генерации имён Ускорение генерации/уничтожения имён Textures,Buffers, etc Мусор при генерации элементов массива Генерация случайных числе. Прерывание генерации |
Модератор
|
|
17.01.2021, 13:04 | 2 |
Для начала изучить азы 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 минут
А как тогда предлагаете писать как минимум обработчики?
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
|
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
|
|
17.01.2021, 13:48 [ТС] | 8 |
Ок, а если убрать код который написан в xaml.cs, то получится, что программы пишутся так? Тот код я написал для динамической генерации элементов.
0
|
Модератор
|
|
17.01.2021, 13:52 | 9 |
Для кнопок, меню и других элементов, у которых есть свойство Command, надо биндить команды.
Для остальных, в зависимости от требуемой функции, или к событиям привязываются команды, или создаются Behavior, AP свойства. Мы вас правильно поняли, а вы нас не хотите понимать. Это не шутка, а настоятельная рекомендация (которая для начинающих является ОБЯЗАТЕЛЬНЫМ правилом): НЕ ИСПОЛЬЗУЙТЕ Code Behind. Все обращения (и тем более создание) к UI элементам в WPF производятся на XAML. Это основной язык WPF. C# вспомогательный язык и используется там где надо расширить дефолтные возможности XAML. На нём создаются: Контекст Данных (ViewModel), конвертеры, AP и DP свойства, Behavior, триггера, различные вспомогательные типы (контейнеры, локаторы, мессенджеры, прокси и т.п.). Но после создания эти типы используются в XAML. Добавлено через 3 минуты У Вас должен быть создан Контекст Данных. Обычно его называют 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, и не может оставаться пустым, правильно?
0
|
Модератор
|
|
17.01.2021, 14:11 | 11 |
Конечно.
Вы создаёте коллекцию с заранее неизвестным количеством элементов. И любой списочный элемент (ItemsControl и его наследники) все их отобразят в любом порядке. Посмотрите тему "WPF vs WinForms (для начинающих)" из ссылки в подписи моего поста. Добавлено через 1 минуту Нет! Реализация команды задаётся в Контексте Данных (ViewModel). Там же где у вас будут находится и сами Данные. Поэтому команда может непосредственно работать с Данными не зная об их визуальной форме.
0
|
17.01.2021, 14:24 | 12 |
Wiis, почитайте Литература по WPF
Нахрапом это не осилить.
0
|
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
|
|
17.01.2021, 14:28 [ТС] | 13 |
Ну, нас в колледже после WF учат работать так), но ладно, спасибо, осталось понять что с этим делать)
0
|
Модератор
|
|
17.01.2021, 14:35 | 14 |
Вас неправильно учат.
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
|
Модератор
|
|||||||
17.01.2021, 16:34 | 16 | ||||||
Wiis, по интерфейсу Форума:
Добавлено через 2 минуты Если время позволяет, я всё же рекомендовал бы сделать сначала и правильно. Если решитесь - я по возможности постараюсь помочь. Думаю, не только я - другие тоже помогут. Помогать в создании костылей - желания мало. Добавлено через 2 минуты К сожалению не только вас так учат. Современное преподавание программирования практически полностью игнорирует ООП. Учат так же как было полвека назад для Фортрана, Алгола, Бейсика и т.п.
0
|
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
|
|
17.01.2021, 17:16 [ТС] | 17 |
Спасибо, но сейчас времени не особо, да и пока разберусь... Но как разберусь воспользуюсь по вохможности)
0
|
0 / 0 / 0
Регистрация: 29.03.2020
Сообщений: 11
|
|
18.01.2021, 08:39 [ТС] | 19 |
Понятия не имею как цитировать с телефона, но предложением поделится этим с приподом возможно на днях воспользуюсь)
0
|
18.01.2021, 08:39 | |
18.01.2021, 08:39 | |
Помогаю со студенческими работами здесь
19
Рандомная генерация уровня. Смена направления генерации объектов Генерация уникальных имен файлов Генерация имен в случайном порядке JAXB пространство имен, генерация классов из xsd Проблема при генерации Функция случайной генерации элементов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |