|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Имеем несколько классов - допустим автомобиль, мотоцикл, велосипед. И подкласс - допустим, колесо, со своими свойствами. Окна редактирования хотел сделать так, чтобы в каждое окно редактирования класса вставлять DataTemplate с параметрами для редактирования колеса, чтобы в этом же окне, а не в отдельном. Получается, что ViewModel у меня будет для каждого класса своя и там будут повторяться вызовы события OnPropertyChanged для свойств которые относятся к колесу. Это же неправильно? Как лучше сделать? Сделать для колеса UserControl и туда логику INotifyPropertyChanged засунуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:26 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Базовый класс колеса, реализующий INPC + класс сущности (автомобиль/мотоцикл/велосипед), инкапсулирующий наследника базового класса колеса. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:36 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Не понял, можете псевдокод ViewModel набросать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:41 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Пример неудачный и странный. Как колесо может быть подклассом этих всех классов? Он же их не наследует. Это просто поле в классе автомобиля и т.п. Причем, поскольку сам класс колеса ничего не знает о своем родителе, то ему абсолютно неважно, есть ли у родителя какие-то события или нет - он от них не зависит. У колеса должно быть своя модель и свой шаблон. Редактирование колеса происходит в пределах модели. Автомобиль может зависеть от класса колеса, задавать ему какие-то параметры, использовать, но класс колеса никак не должен зависеть от класса автомобиля. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:42 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Shocker.Pro, У колеса есть: Радиус, тип (радиальный, диагональный), ширина профиля, наличие шипов. Человек редактирует автомобиль, там есть TextBox для радиуса колеса, ширины профиля и кнопка - остальные характеристики. Т.е. радиус и ширину он может поменять сразу в окне автомобиля, а наличие шипов только в расширенном окне. И аналогично в окне редактирования мотоцикла и велосипеда. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:46 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Попутно вопрос, а как в таком случае лучше делать валидацию значений? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:50 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Евгений, Екатеринбург Shocker.Pro, У колеса есть: Радиус, тип (радиальный, диагональный), ширина профиля, наличие шипов. Человек редактирует автомобиль, там есть TextBox для радиуса колеса, ширины профиля и кнопка - остальные характеристики. Т.е. радиус и ширину он может поменять сразу в окне автомобиля, а наличие шипов только в расширенном окне. И аналогично в окне редактирования мотоцикла и велосипеда. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 10:00 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Евгений, Екатеринбург Попутно вопрос, а как в таком случае лучше делать валидацию значений? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 10:01 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Shocker.Pro, Кажется допер. Т.е. надо сделать разные DataTemplate для колеса, которые будут дергать одну и туже ViewModel колеса. А окно автомобиля имеет свою ViewModel, в которой уже все что касается колеса не обрабатывается. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 10:07 |
|
DataTemplate и ViewModel
|
|||
---|---|---|---|
#18+
Евгений, Екатеринбург Shocker.Pro, Кажется допер. Т.е. надо сделать разные DataTemplate для колеса, которые будут дергать одну и туже ViewModel колеса. А окно автомобиля имеет свою ViewModel, в которой уже все что касается колеса не обрабатывается. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 10:10 |
|
|
start [/forum/topic.php?fid=21&msg=40050138&tid=1440250]: |
0ms |
get settings: |
17ms |
get forum list: |
16ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
36ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
253ms |
get tp. blocked users: |
0ms |
others: | 334ms |
total: | 665ms |
0 / 0 |