Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / mvvm и динамическая связь между элеметами управления / 9 сообщений из 9, страница 1 из 1
03.10.2011, 18:23
    #37465902
mvvm и динамическая связь между элеметами управления
Вопрос может глупый, но тем не менее...

Есть 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
03.10.2011, 19:37
    #37466047
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvvm и динамическая связь между элеметами управления
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
04.10.2011, 18:18
    #37467799
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvvm и динамическая связь между элеметами управления
Задаешь дополнительное свойство для выбранной страны и setter'e меняешь города
public Country SelectedCountry
{
get
{
return _SelectedCountry;
}
set
{
if (_SelectedCountry != null)
{
Cities = _SelectedCountry.Cities;
}
}
...
Рейтинг: 0 / 0
04.10.2011, 20:10
    #37467945
pshik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvvm и динамическая связь между элеметами управления
В модели MVVM ловить события во View считается дурным тоном...т.е нельзя писать всякие Button_Click.
Нужно использовать интерфейс ICommand и bind эти команды из View к ViewModel.
И во ViewModel уже фильтровать данные,которые через Binding будут обновлять контролы во View.
...
Рейтинг: 0 / 0
05.10.2011, 00:21
    #37468260
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvvm и динамическая связь между элеметами управления
pshikВ модели MVVM ловить события во View считается дурным тоном...т.е нельзя писать всякие Button_Click.
Нужно использовать интерфейс ICommand и bind эти команды из View к ViewModel.
И во ViewModel уже фильтровать данные,которые через Binding будут обновлять контролы во View.

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

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

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

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

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


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