|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
Доброго времени суток всем! Открыл для себя mvvm light, действительно удобная вещь в некоторых моментах, но есть одна проблема: В приложении необходимо дать возможность создать несколько экземпляров одной и той же View, но каждый должен иметь отдельную ViewModel - сколько я не бился придумать как это сделать с использованием ViewModelLocator так и не смог. Вот подтверждение моих рассуждений(я не один такой) ссылка Вот по этой ссылке разъясняют как это сделать, но если я правильно понял, то там для каждой View создается отдельный экземпляр Locator'а - какой тогда смысл его использовать вообще? (это уже ненужная сложность). Если этот сценарий легко реализуется с помощью другого mvvm фреймворка(Prism или какой то еще может быть), то направьте куда копать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2012, 10:40 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
xpoft2010В приложении необходимо дать возможность создать несколько экземпляров одной и той же View, но каждый должен иметь отдельную ViewModel - сколько я не бился придумать как это сделать с использованием ViewModelLocator так и не смог.Все эти ViewModelLocator, EventAggregator, RegionManager и прочие ненужности не приспособлены к описанной ситуации. Забей на них и делай по обычному. Код: xml 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2012, 11:11 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
ВАриантов много, Алексей продемонстрировал самый дубовый.Напишу, когда будет время ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2012, 16:21 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
Нормальный фреймворк должен поддерживать навигацию(см prism или caliburn) Вариантов может быть много, тк xaml много возможностей для этого: 1. Создание ViewModel в xaml, если для у него конструктор без параметров Код: xml 1. 2. 3.
2. Implicit datatemplate. Определяем в ресурсе шаблон для view Код: xml 1. 2. 3. 4. 5. 6.
После этого котролы, которые поддерживают DataTemplate(ContentCOntol, ItemsControl и все его наследники, etc) будут автоматически выбирать нужный шаблон. Достаточно Код: c# 1. 2. 3.
Один из вариантов для view first: 1. Регистрируем view,viewmodel в контейнере: container.RegisterType<IView, MyView>("имяДляНавигации"+"View"); container.RegisterType<IViewModel, MyViewModel>("имяДляНавигации" + "ViewModel"); В Mef это делается гораздо проще только через нужные атрибуты у классов 2. Рисуется сервис навигации с методом Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
или более простой поход Код: c# 1. 2. 3. 4.
Код: c# 1.
И тд. Есть масса фреймворков с разными подходами ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2012, 07:01 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
Спасибо за ответы, посмотрю в сторону Prism ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2012, 14:07 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
xpoft2010 создать несколько экземпляров одной и той же View, но каждый должен иметь отдельную ViewModel Не вижу проблем в классическом mvvm, даже без mvvmlight, prism и прочих поделок. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2012, 16:03 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
skolexpoft2010 создать несколько экземпляров одной и той же View, но каждый должен иметь отдельную ViewModel Не вижу проблем в классическом mvvm, даже без mvvmlight, prism и прочих поделок. А что такое классический mvvm? Нечто по мотивам единственной статьи на русском в msdn? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2012, 20:41 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
SeVa, ты наверное меня с МСУ перепутал ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2012, 10:54 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
SeVaskoleпропущено... Не вижу проблем в классическом mvvm, даже без mvvmlight, prism и прочих поделок. А что такое классический mvvm? Нечто по мотивам единственной статьи на русском в msdn?То что лежит в основе WPF/SL, а не описано в "единственной статье", и не предложено в различных калабуризмах. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2012, 11:01 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
SeVa Код: xml 1. 2. 3.
Не боишся так делать? Что, если потом захочется сделать так: Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2012, 11:03 |
|
mvvm light - несколько экземпляров View каждый со своим ViewModel
|
|||
---|---|---|---|
#18+
SeVa Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Кто-то где-то недавно утверждал, что ServiceLocator - зло. Или мне показалось? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2012, 11:05 |
|
|
start [/forum/topic.php?fid=21&msg=37982862&tid=1441652]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 461ms |
0 / 0 |