我是初学者,我有一个非常简单的WPF应用程序,有两个视图......(我现在使用代码...)
我需要和this tutorial做同样的事情,但是使用Prism而不是mvvm light ...我需要改变什么?
我设法使用命令,但我不知道如何切换视图...(Prism中不存在ViewModelBase)我需要从我第一个视图的ViewModel中的命令更改视图。 / p>
我只找到难以理解的Prism“入门”教程......我正在寻找一个非常简单的例子......
答案 0 :(得分:1)
简单的例子;)你看看了吗? http://msdn.microsoft.com/en-us/library/gg406140.aspx这是一个很长的阅读,但充满了信息。 Prism的最新版本引入了BindableBase,它使用SetProperty(ref _propName,value)类型语法,使INotifyProperty Change ordeal更加清晰。
清单16:代码示例使用PRISM库进行WPF,应该为您提供所需的简单示例。他们在5.0中添加了几个例子,而不是之前的股票交易者应用程序。
您可以查看第一个区域导航,然后就像这样。
<Button Content="Steady State Projects"
Style="{StaticResource NavButton}"
Command="{x:Static infCommands:ApplicationCommands.NavigateCommand}"
CommandParameter="{x:Type views:Projects }" MaxHeight="75"/>
public class ApplicationCommands
{
public static CompositeCommand NavigateCommand = new CompositeCommand();
}
public class ShellViewModel
{
private readonly IRegionManager _regionManager;
public DelegateCommand<object> NavigateCommand { get; private set; }
public ShellViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
NavigateCommand = new DelegateCommand<object>(Navigate);
ApplicationCommands.NavigateCommand.RegisterCommand(NavigateCommand);
}
/// <summary>Navigates using the view path, with the regions</summary>
/// <param name="navigatePath"></param>
private void Navigate(object navigatePath)
{
if (navigatePath != null)
{
_regionManager.RequestNavigate(RegionNames.ContentRegion, navigatePath.ToString(), NavigationComplete);
}
}
/// <summary>Callback activates on navigation completed.</summary>
/// <param name="result"></param>
private void NavigationComplete(NavigationResult result)
{
// MessageBox.Show(result.Context.Uri.ToString());
}
}