1
我正在用Windows Phone 8.1应用程序开发MVVMLight。我们有一个按姓氏或名字对用户列表进行排序的设置。在更改此设置(由设置为SettingsViewModel中的属性的ListPicker执行)后,我想调用另一视图模型(OtherViewModel)中的方法来重新排列OtherViewModel相应视图上的用户列表。正在使用settingsStore将分类设置存储在用户的手机上。从一个视图模型调用不同视图模型的方法
我不希望通过var vm = new ViewModel()
创建视图模型依赖关系,因为两个视图模型之间没有父/子关系。我被告知委托人是一个不错的选择,但我不太了解如何使用委托实施解决方案。
任何帮助,将不胜感激。
设置查看
<toolkit:ListPicker x:Name="ContactsSortParametersListPicker"
ItemsSource="{Binding ContactsSortParameters, Mode=OneTime}"
SelectedItem="{Binding ContactsSortParametersSelected, Mode=TwoWay}"
SelectionChanged="ContactsSortParametersListPicker_SelectionChanged"/>
设置查看(代码隐藏)
private void ContactsSortParametersListPicker_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// want to call method from MainViewModel that updates a list in Main View
}
SettingsViewModel
public IEnumerable<SortOptions> ContactsSortParameters
{
get { return (IEnumerable<SortOptions>)Enum.GetValues(typeof(SortOptions)); }
}
private SortOptions _sortContactsParameterSelected;
public SortOptions ContactsSortParametersSelected
{
get { return _sortContactsParameterSelected; }
set
{
SetProperty(ref _sortContactsParameterSelected, value);
_settingsStore.ContactsSortParameter = _sortContactsParameterSelected;
}
}
OtherViewModel
public async Task LoadDirectory()
{
...relevant logic here...
}
正是我一直在寻找的是新MVVM。谢谢你的帮助! – killQuotes 2014-10-31 21:18:11