【发布时间】:2011-09-04 00:04:58
【问题描述】:
我正在尝试使用 Prism 4 创建 Silverlight 应用程序,并且正在测试它的导航功能。单击按钮时,我想在两个视图之间切换。第一种观点是:
public partial class HomeView
{
public HomeView(HomeViewModel viewModel)
{
DataContext = viewModel;
InitializeComponent();
}
}
和 ViewModel:
public class HomeViewModel : NotificationObject, IRegionMemberLifetime
{
private readonly IRegionManager _regionManager;
public DelegateCommand SubmitCommand { get; set; }
public bool KeepAlive { get { return false; } }
public HomeViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
SubmitCommand = new DelegateCommand(Submit);
}
private void Submit()
{
_regionManager.RequestNavigate("Home", new Uri(typeof(UsersView).Name, UriKind.Relative));
}
}
问题是,当我将“Home”区域设置为 ItemsControl、Grid(带适配器)时 - 它没有进入 KeepAlive 属性,只需将第二个视图添加到该区域,我就可以看到它们.
当区域被定义为 ContentControl 或 TabControl - 它会移除 HomeView 并添加 UsersView!
谁能告诉我我做错了什么?我想使用网格作为区域来实现这一点。
我已阅读本章http://msdn.microsoft.com/en-us/library/gg430861%28v=pandp.40%29.aspx 并没有找到答案...
【问题讨论】:
-
那么您的问题是您希望作为项目控件的网格具有内容控件的行为?
标签: .net wpf silverlight prism