powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / mvvm и динамическая связь между элеметами управления
9 сообщений из 9, страница 1 из 1
mvvm и динамическая связь между элеметами управления
    #37465902
Вопрос может глупый, но тем не менее...

Есть view.
На нем, скажем, список стран и список городов.

Нужно обеспечить пользовательскую логику: выделил страну в списке стран - список городов обновился, вывелись только города для этих стран.

Просто статику в ViewModel я сделал через свойства:
Код: plaintext
1.
public ObservableCollection<Country> Countries { get; set; }
public ObservableCollection<City> Cities{ get; set; } 
и прибиндил это дело к соответствующим элементам на View:
Код: plaintext
1.
... ItemsSource="{Binding Countries}" ...
... ItemsSource="{Binding Cities}" ...
Без модели MVVM я бы просто отловил соответствующее событие на списке стран и обновил спискок городов.
А как это правильно сделать в MVVM? Т.е. что дальше делать-то?
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37466047
pshik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INotifyPropertyChanged is an important interface in Silverlight used by the data binding engine to notify controls and other objects when a bound property value changes. By implementing INotifyPropertyChanged on the ViewModelBase class you can write the code once and re-use it across multiple ViewModel classes. The interface is located in the System.ComponentModel namespace
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37467799
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задаешь дополнительное свойство для выбранной страны и setter'e меняешь города
public Country SelectedCountry
{
get
{
return _SelectedCountry;
}
set
{
if (_SelectedCountry != null)
{
Cities = _SelectedCountry.Cities;
}
}
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37467945
pshik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В модели MVVM ловить события во View считается дурным тоном...т.е нельзя писать всякие Button_Click.
Нужно использовать интерфейс ICommand и bind эти команды из View к ViewModel.
И во ViewModel уже фильтровать данные,которые через Binding будут обновлять контролы во View.
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37468260
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pshikВ модели MVVM ловить события во View считается дурным тоном...т.е нельзя писать всякие Button_Click.
Нужно использовать интерфейс ICommand и bind эти команды из View к ViewModel.
И во ViewModel уже фильтровать данные,которые через Binding будут обновлять контролы во View.

Где и какую команду ты собираешься прикручивать в этом случае?
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37468303
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pshik,

если речь идет о DataGrid то у него есть SelectedItem вот и вяжите его к CurrentCountry как посоветовал Seva.
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37469981
pshik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVapshikВ модели MVVM ловить события во View считается дурным тоном...т.е нельзя писать всякие Button_Click.
Нужно использовать интерфейс ICommand и bind эти команды из View к ViewModel.
И во ViewModel уже фильтровать данные,которые через Binding будут обновлять контролы во View.

Где и какую команду ты собираешься прикручивать в этом случае?
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37470306
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картинки замечательные(дай ссылку на оригинал), но к командам и теме топика они не имеют отношения.
...
Рейтинг: 0 / 0
mvvm и динамическая связь между элеметами управления
    #37471448
pshik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaКартинки замечательные(дай ссылку на оригинал), но к командам и теме топика они не имеют отношения.

Да там и ответ на вопрос, что нет во View методов и прочего, а только Binding.
Так же и параметры передаются во ViewModel, через Binding.
Ни View, ни ViewModel о друг друге ничего не знают....всё просто и удобно для тестирования.
А так конечно, чудес не бывает.

Примеры не хочется тут писать, их легко найти в интернете.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / mvvm и динамическая связь между элеметами управления
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]