|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
||||||
WPF Как внедрить модель во viewModel?26.12.2024, 11:19. Показов 25505. Ответов 295
День добрый. Есть у меня метод в проекте, который вызывается из конструктора. Метод по типу "Получить все из бд и вывести на экран".
Смущает меня то, как именно я это делаю. Когда происходит загрузка, UI блокируется. Да и в целом все очень медленно и дальше будет только хуже с добавлением данных. Теперь код.
0
|
||||||
| 26.12.2024, 11:19 | |
|
Ответы с готовыми решениями:
295
Как зарегистрировать ViewModel через Autofac, создав между ViewModel и нужным View DataContext связь?
|
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
|||||||
| 20.02.2025, 05:09 [ТС] | |||||||
|
В конце есть ItemsControl, который непонятно к чему привязан (Просто Binding без ничего). Попытался привязать к Count, но ничего не выводится в таком случае.
0
|
|||||||
|
Модератор
|
|||||||||||||||||||
| 20.02.2025, 14:49 | |||||||||||||||||||
ItemsSource="{Binding Mode=OneWay, Source={StaticResource birds}}".birds - это CollectionViewSource из ресурсов App:
В текущей реализации выбирается только один Specie. Но можно выбрать и несколько - это задаётся режимом ListBox x:Name="speciesList"/Добавлено через 1 час 8 минут
0
|
|||||||||||||||||||
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
|||
| 20.02.2025, 17:56 [ТС] | |||
DisplayMemberPath, просто ничего не выводит, хотя по идее должно выводить количество элементов в коллекции. Specie вывести только одну - Specie[0] например. А по команде уже переключиться к Specie[1], то есть выводить во View элементы из коллекции по очереди, а не все сразу, как в BirdsView, к примеру.Я так понимаю, что такие вот штуки с сортировкой делать надо в CB?
0
|
|||
|
Модератор
|
|||||
| 20.02.2025, 23:24 | |||||
|
Привязка "{Binding Mode=OneWay, Source={StaticResource birds}}" эквивалентна привязке "{Binding Path=View, Mode=OneWay, Source={StaticResource birds}}".Привязка "{Binding Count, Mode=OneWay, StringFormat=Total number of birds: \{0\}, Source={StaticResource birds}}" эквивалентна "{Binding Path=View.Count, Mode=OneWay, StringFormat=Total number of birds: \{0\}, Source={StaticResource birds}}".Причём здесь DisplayMemberPath, вообще, не пойму.Не надо описывать КАК вы хотите сделать. Опишите ЧТО вы хотите сделать. Если привязка идёт к CollectionView (в данном случае получаемом из CollectionViewSource.View), то нужно получать перечисление View. Если нужна синхронизация представлений, то нужно использовать ICollectionView.CurrentItem и переходить к следующему методом ICollectionView.MoveCurrentToNext .Если нужно не синхронизированное переключение, то сделать копию CollectionViewSource.View и обходить по нему. Так же синхронизацию можно отключить в свойстве Selector.IsSynchronizedWithCurrentItem.Добавлено через 2 минуты В CB проще для учебного примера. В общем случае лучше делать в Behavior, Attached Property и статическом хелпере.
0
|
|||||
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
|||
| 21.02.2025, 10:47 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
Модератор
|
||
| 21.02.2025, 19:48 | ||
|
Что в GUI вы хотите увидеть? Например, представление одного Bird и кнопки перехода с предыдущему и следующему? Если да, то по какой коллекции Birds, то есть как она должна быть отфильтрована и отсортирована?
0
|
||
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
||
| 22.02.2025, 03:31 [ТС] | ||
MainWindow, в UserControl не удалось добиться такого же результата.
0
|
||
|
Модератор
|
|||
| 22.02.2025, 10:24 | |||
|
Главное чтобы команды были. Не ответили на вопросы: birds в ресурсах App без синхронизации текущего элемента.
0
|
|||
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
|||
| 22.02.2025, 11:39 [ТС] | |||
|
Я уже делал сортировку CollectionView. Метод сортировки у меня был в главной модели, в ветке twoentities. Вы этот метод без объяснений убрали, теперь у вас метод по сортировке в cb, но вы говорите, что так делать не обязательно. Так что я не имею понятия где должны располагаться методы по сортировке и фильтрации коллекций. Пусть пока будет без сортировки или фильрации.
0
|
|||
|
Модератор
|
|||||||
| 22.02.2025, 17:19 | |||||||
BirdsViewSource : CollectionViewSource скинул в фиксации ветки twoentity.Добавил в BirdsView фильтрацию по фрагментам текста. Добавлено через 4 минуты ViewModel не может работать с сущностями View. А CollectionViewSource это сущность уровня View.Сейчас перенесу эту сортировку в App birds. Добавлено через 7 минут Добавил. Посмотрите фиксацию. Добавлено через 1 час 34 минуты
Selector.IsSynchronizedWithCurrentItem. Если делать с синхронизацией, то надо листать App.birds методами CollectionView.MoveCurrentToNext и CollectionView.MoveCurrentToPrevious. Я же сделал листание через скрытый ListBox. Добавлено через 25 минут
1
|
|||||||
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
|
| 22.02.2025, 17:41 [ТС] | |
|
Элд Хасп, благодарю. Буду разбираться.
0
|
|
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
||||||
| 23.02.2025, 07:23 [ТС] | ||||||
|
Элд Хасп, возможно ли использовать два провайдера баз данных, но не одновременно, а в зависимости от условий? Допустим на своем пк я хочу использовать SqlServer, но если по нему не удается, то SqlLite.
Собственно вот в этом методе может ли присутствовать какой-нибудь if или switch, дабы определять нужный провайдер?
0
|
||||||
|
Модератор
|
|
| 23.02.2025, 11:03 | |
|
Vissmuy, вопрос не относится к WPF.
Скопировал его в раздел C#: Базы данных, Entity Framework.
0
|
|
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
|||||||||||||||||||||
| 23.02.2025, 17:32 [ТС] | |||||||||||||||||||||
|
Элд Хасп, мне удалось сделать такую же навигацию по коллекции, как у вас, но есть проблема. У меня, скажем так, несколько коллекций, по которым нужна навигация. Но когда я передаю в первый раз одну коллекцию, все норм. Затем я передаю другую, но у меня по прежнему старая коллекция в привязке.
Вот модель, в которой находится нужная для навигации коллекция элементов.
setVM.Words - это как раз таки свойство в ViewModel. Сейчас не используется.WordsInSet - в целом тоже самое, но на этот лист есть ссылка в App, дабы я имел к нему доступ в других представлениях, как у вас. Но он статичный. И соответственно не обновляется.CollectionViewSource в App.xaml. Эту коллекцию я и использую для навигации.
Соответственно в нужном View идет привязка к этому набору.
0
|
|||||||||||||||||||||
|
Модератор
|
|||
| 23.02.2025, 17:38 | |||
"{Binding WordsInSet, Source={StaticResource mainVM}}".WordsInSet - это свойство mainVM?Покажите его реализацию.
0
|
|||
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
|||||||
| 23.02.2025, 17:43 [ТС] | |||||||
0
|
|||||||
|
Модератор
|
||||||||
| 23.02.2025, 18:23 | ||||||||
Привязка для обновления свойства использует PropertyDescriptor: Разъяснение PropertyDescriptor: Почему в некоторых случаях Binding правильно работает без INPC (INotifyPropertyChanged)? Добавлено через 3 минуты Объявите в нужном представлении.
0
|
||||||||
|
4 / 4 / 1
Регистрация: 26.12.2024
Сообщений: 225
|
||||||||
| 24.02.2025, 12:05 [ТС] | ||||||||
ToggleButton.
ToggleButton, своя ViewModel, я в ресурсах этой View задал эту ViewModel, и к ее булевому свойству привязал кнопку. Но по какой-то непонятной мне причине при переключении тогл кнопки булевая переменная не меняет своего значения.
0
|
||||||||
|
|
||||||||||||||
| 24.02.2025, 12:22 | ||||||||||||||
|
В VM
Vissmuy, Добавлено через 14 секунд Vissmuy,
0
|
||||||||||||||
|
Модератор
|
|||
| 24.02.2025, 14:21 | |||
|
Сильно попахивает просачиванием View функционала в VM. Это уже вас уже другой проект, не Birds? Лучше дайте его через GitHub - так проще будет разобраться.
0
|
|||
| 24.02.2025, 14:21 | |
|
Mvvm ViewModel в ViewModel Как внедрить БД в exe на VB 6.0 Как внедрить функцию как с внедрить свой код
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|