Tag: prism 4

使用PRISM 4显示modal dialog

我正在使用PRISM和MVVM以及WPF开发.NET 4.0应用程序。 我目前有一个细分在区域中的shell,其中插入了视图。 当用户点击其中一个视图中的按钮时,我希望定制的模式对话框显示在所有视图的顶部,但仍在同一个shell中。 我查看了StockTrader RI示例及其RegionPopupBehavior的实现。 基本上,他们创建了一个依赖属性,允许他们定义具有特定的自定义行为的区域。 行为是负责处理相关视图渲染的行为,因此将其显示为弹出窗口。 这种方法的唯一缺点是所有其他视图仍处于活动状态,因此弹出窗口不是模态的。 我想这可以通过手动禁用shell中所有不需要的区域来解决,但我不确定这是多么“干净”。 我想知道是否有更好更简单的方法在Prism中显示模态弹出视图?

如何在PRISM中每次导航时创建新视图?

我正在为我的新项目使用WPF4和PRISM4。 有一个模块,里面有几个视图。 DI是统一完成的。 当我第一次从ViewA导航到ViewB时,会创建ViewB并调用其构造函数。 但是,当我第二次尝试导航到ViewB时,未创建ViewB,但重用现有实例。 我正在使用IRegionManager.RequestNavigate进行导航。 我试图将TransientLifeTimeManager传递给RegisterType Unity方法,但无济于事。 有没有办法在每次导航时配置棱镜和/或统一以创建新视图? 谢谢。

棱镜4:RequestNavigate()不起作用

我正在构建一个演示应用程序来学习Prism 4的导航function。该应用程序有两个模块 – 每个模块有三个视图: 带有文本块的UserControl(“欢迎使用模块A”) RibbonTab(使用区域适配器),和 Outlook样式的任务按钮(如Outlook的邮件,日历等) Shell有三个命名区域:“RibbonRegion”,“TaskButtonRegion”和“WorkspaceRegion”。 视图加载到这些区域。 为了测试基本设置,我使用Prism Region Manager注册了所有三个视图,以便它们在启动时加载,并且所有操作都按预期工作。 接下来,我修改了设置,以便在启动时只加载任务按钮。 其他视图仅在请求时加载,方法是单击任务按钮。 我的模块初始化器看起来像这样: public void Initialize() { /* We register the Task Button with the Prism Task Button Region because we want it * to be displayed immediately when the module is loaded, and for the lifetime of * the application. */ // […]

View中的XamlParseException

我有一个只显示标签的视图。 视图模型在视图中正确注入,因为标签的文本绑定到viewmodel属性。 现在,如果我尝试在xaml中定义DataGrid,我有一个XamlParseException: {System.Windows.Markup.XamlParseException:未找到类型’DataGrid’。 [行:16位置:45] su System.Windows.Application.LoadComponent(Object component,Uri resourceLocator)su Common.Views.FunctionalityView.InitializeComponent()su Common.Views.FunctionalityView..ctor(IFunctionalityViewModel viewModel)} 但是如果我在InitializeComponent();之前定义一个DataGrid myDg = new DataGrid() InitializeComponent(); 有用。 我检查了所有参考文献,仍然无法找到问题。

桌面DLL中的Prism PopupChildWindowAction缺失

我正在尝试在WPF Prism Desktop应用程序中实现modal dialog。 从Prism指导我可以看到正确的方法应该是使用Interaction: 但PopupChildWindowAction在桌面的Microsoft.Practices.Prism.Interactivity.DLL库中不可用,只有Silverlight? 我可以谷歌在WPF(Prism)的Modal对话框的许多不同的实现,但只是想知道为什么这个function从Prism桌面DLL丢失,并在Silverlight DLL中可用? 我可以使用交互服务,但建议使用交互请求作为MVVM应用程序的更合适的方法。