Tag: prism

在xmlns clr-namespace中找不到EventToCommandBehavior:Prism.Behaviors

我正在研究Xamarin.Forms项目。 在Prism 6.3之前,我使用了6.2和Corcav.Behaviors包。 我不需要传递参数,所以它工作得很好。 但是,在AppDelegate iOS项目中,我需要运行这一行: Corcav.Behaviors.Infrastructure.Init(); 我有一个评论: //添加以防止iOS链接器从已部署的包中剥离行为程序集。 现在EventToCommand被添加到6.3版本,所以我卸载了Corcav.Behaviors包并实现了简单的例子。 在Android中一切都很棒,但是iOS ..我有例外: 我想这是因为现在我错过了这一行: Corcav.Behaviors.Infrastructure.Init(); 我的例子: 查看 : 我的自定义网格: public class TestGrid : Grid { public event EventHandler OnTestTapped; public TestGrid() { var tgr = new TapGestureRecognizer { NumberOfTapsRequired = 1 }; tgr.Tapped += Tgr_Tapped; this.GestureRecognizers.Add(tgr); } private void Tgr_Tapped(object sender, EventArgs e) { OnTouchedEventArgs args […]

如何在MVVM中单击时清除文本框

我有一个文本框和一个按钮,我希望在按钮单击时清除文本框的内容。 我正在使用MVVM棱镜。 我的XAML是 在我的视图模型中 public string TextProperty { get { return selectedText; } set { selectedText = value; SetProperty(ref selectedText, value); } } //////……… private void MyCommandExecuted(object obj) { TextProperty= string.Empty; MessageBox.Show(“Command Executed”); } 但它并没有清除文本框。 我错过了什么?

Prism v4使用DirectoryModuleCatalog按需加载模块

在我的引导程序中,我有以下代码来创建我的Directory ModuleCatalog protected override IModuleCatalog CreateModuleCatalog() { DirectoryModuleCatalog catalog = new DirectoryModuleCatalog(); catalog.ModulePath = @”.\Modules”; return catalog; } 但是当shell被创建时,我的所有模块似乎都在加载。 如何在仍然使用DirectoryModuleCatalog的同时按需加载它们?

在异步WCF响应线程上使用PRISM 4请求UI导航

我正在开发一个使用以下技术的项目: C#(.NET 4.0) WCF 棱镜4 我目前正在使用代理生成的Begin / End方法对我们的一个Web服务进行异步调用。 调用成功,客户端能够在工作线程上接收Web服务的响应。 收到回复后,我继续举办活动。 订阅该事件的类继续使用PRISM请求UI导航: Application.Current.Dispatcher.BeginInvoke(new Action(() => this.RegionManager.RequestNavigate(RegionNames.LoginContentRegion, projectSelectionViewUri))); 由于未在UI线程上捕获异步WCF响应,因此我不得不使用Application.Current.Dispatcher.BeginInvoke(…)调用UI线程。 这里的问题是调用似乎什么都不做。 UI未更新,并且不会引发exception。 使用调度程序尝试调用的类是View的View-Model。 它是使用控制反转(使用UNITY容器)创建的。 这是视图的构造函数,它请求它的View-Model: public CredentialsInputView(ICredentialsInputViewModel viewModel) { InitializeComponent(); ViewModel = viewModel; … } 上面的代码会调用View-Model的构造函数。 我尝试将调度程序存储在VM的构造函数调用中,但是稍后使用它来调用UI导航似乎没有帮助。 我认为在UI线程上没有创建View-Model: private static System.Windows.Threading.Dispatcher dispatcher; /// /// Initializes a new instance of the class. public CredentialsInputViewModel(ICodexLoginService codexLoginService, ISessionService sessionService, IRegionManager regionManager) […]

绑定UWP页面加载/加载到MVVM命令

最好用PRISM(Prism.Core 6.2,Prism.Windows 6.02)编写,但我也想知道如何将UWP中的Command与页面加载/加载事件绑定到没有Prism的普通MVVM。 在WPF中,它可以通过以下方式实现: xmlns:i=”clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity” 在ViewModel中 public ICommand LoadedCommand { get; private set; } public TheViewModelConstructor() { LoadedCommand = new DelegateCommand(Load); } private async void Load() { // Do stuff } 但在UWP中,System.Windows.Interactivity不存在。 只需绑定 Loaded=”{Binding LoadedCommand}” 要么 Loading=”{Binding LoadingCommand}” 将得到编译错误“对象引用未设置对象的实例”。 我想这样做的原因是因为有一个异步方法需要在页面加载期间或之后完成(它不能在ViewModel构造函数中)。 我可以轻松地使用代码,但这不是MVVM。 如何正确绑定此命令?

如何解决“无法加载文件或程序集’Microsoft.Practices.Prism’”错误?

过去几天我一直在寻找使用Prism在WPF应用程序中修复错误,但没有任何运气,并且我认为Stackoverflow是否有任何想法。 请注意,对于Prism来说,我绝对是一个菜鸟:) 我正在学习如何使用Prism创建应用程序,Unity是我的dependency injection容器。 我正在尝试使用修改后的App.config文件加载模块,但是我收到了与引导程序相关的运行时错误。 错误消息将比我能提供的任何解释更准确,因此我已经包含App.config文件,出现错误的App.xaml.cs文件以及下面的错误信息。 提前感谢您提供的任何见解,如果您可能需要任何其他信息,请告诉我们! 编辑 :错误中引用的此文件目录(C:\ Users \ Roger \ Documents \ TestPrismProject \ WpfApplication1 \ WpfApplication1 \ bin \ Debug \ WpfApplication1.exe.Config第4行)引用App.config文件的第四行(部分名称) = …)。 我发现的所有教程和参考资料都与我所拥有的相同,但这仍然是引起问题的线条。 编辑2 :第一次编辑中引用的行实际上与官方Microsoft Prism指南中的行完全相同。 编辑3 :所以我从来没有弄清楚造成这种情况的根源,但是在我的沮丧中,我重新启动了我正在完成的示例项目,并没有在新项目中得到错误。 仍然不确定问题的根源是什么。 编辑4 :开个玩笑,同样的错误又回到了新程序中。 App.config中: App.xaml.cs(错误出现在“bootstrapper.Run()”行中): using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows; namespace EmailClient […]

桌面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应用程序的更合适的方法。

Xamarin与Prism MasterDetail导航一起使用

我已经开始使用Prism和Xamarin.Forms在Xamarin Studio上构建应用程序。 我的问题是,我似乎无法找到代码片段作为应用内部MasterDetail导航的示例。 每次我导航到一个页面时,它只会在上一个主视图的顶部呈现一个新视图。 是否有某个示例或关于如何使用可切换视图的说明,以便在xamarin上使用棱镜实现主/细节导航? 我已经为Windows窗体应用程序找到了一些棱镜示例,但没有特定于xamarin窗体。 提前谢谢你,对于这个普遍的问题感到抱歉。

使用共享服务的示例。 棱镜

我有5个模块,我使用EventAggregator模式在模块之间进行通信。 在我看来,我的代码变得丑陋,在我的项目中使用EventAggregator是不好的设计。 模块之间有三种通信方式: 松散耦合的事件 共享服务 共享资源 我想更多地了解共享服务的通信。 我发现的是一篇关于Prism ToolKit的StockTrader应用程序的文章。 是否有一些更轻量级和更清晰的使用Prism中的共享服务的例子,在这里可以看到使用共享服务在模块之间进行交谈? (可下载的代码将受到高度赞赏)

Wpf Observable集合和DataGrid不更新更改

我在视图模型中有一个可观察的集合,它实现了Bindable Base,如下所示请查看MoveUp和MoveDown方法,它们绑定到视图中的两个按钮。 当按下向上按钮时,我希望数据网格中的选定行在数据库中基于序列列向上移动一步并向下移动一步。两种方法都可以完美地工作。 问题是只有在刷新整个视图时才会在数据网格中显示更改。 我的要求是单击按钮时我希望视图自动刷新。 我为这么长的代码道歉。 请帮忙!!!!。 我有一些cs代码也适用于viewmodel下面指定的向上和向下按钮。 只需要强调的代码中的指针是ObservableCollection JobEntities,MoveUp和MoveDown命令。 ViewModel.cs: public class JobConfigurationViewModel : BindableBase { public JobConfigurationLogic JobConfigurationLogic = new JobConfigurationLogic(new JobConfigurationResultsRepository()); public SrcDestConfigurationLogic SrcDestConfigurationLogic = new SrcDestConfigurationLogic(new SrcDestCofigurationRepository()); private string _enterprise; public string Enterprise { get { return _enterprise; } set { SetProperty(ref _enterprise, value); } } private int currentJobID; private int […]