草庐IT

Caliburn

全部标签

c# - Caliburn.Micro 无法匹配来自不同程序集的 View 和 ViewModel

我刚开始使用Caliburn.Micro。我正在尝试引导我的简单示例解决方案,将ShellView(用户控件)放在Test.App程序集中,并将ShellViewModel放在Test.ViewModel程序集中。我得到的是一个带有以下文本的窗口:“找不到Caliburn.Test.ViewModel.ShellViewModel的View”。但如果我将ViewModel移动到.App程序集,它会完美运行。这是Caliburn.Micro.Test程序集(可执行)中的Bootstraper:namespaceCaliburn.Micro.Test{publicclassAppBoots

c# - Caliburn 微构造函数注入(inject)失败

我正在学习CaliburnMicro并尝试使用officialsite中的EventAggregator.但是,我得到了一个异常(exception)"Noparameterlessconstructordefinedforthisobject."消息本身很清楚,但示例也不包含无参数构造函数。如果我添加一个,带有参数的构造函数未命中,IEventAggregator仍未正确注入(inject)。这是添加无参数构造函数后我的发布者虚拟机(没有它,将抛出异常):publicMainViewModel(){}publicMainViewModel(IEventAggregatorea):th

c# - 使用 Caliburn.Micro 将命令绑定(bind)到 ListView 内的按钮

我正在尝试创建类似于MDI选项卡式界面的东西,因此我在左侧有一个导航Pane(一个列表框),在右侧有一个ContentPresenter。我有一个ShellViewModel,上面有一个名为AvailAbleScreens的BindableCollection,我成功地使用ListViewsDataTemplate绑定(bind)到该列表:现在的问题是,虽然按钮的名称设置正确,但我无法让命令为我触发。在MdiViewModel类上,我有该按钮的以下代码:publicboolCanDisplayView(){returntrue;}publicvoidDisplayView(){Mess

c# - 在 Caliburn.micro 中设置初始窗口大小

我需要设置View首次打开时的默认大小,但View必须允许用户展开。(由于其他原因,我无法在我的WindowManager中使用SizeToContent属性。)这一定很常见,设置默认窗口大小的推荐方法是什么? 最佳答案 这实际上困扰了我一段时间。一旦我弄明白了,我就很生气,因为我没有早点弄明白。在caliburn中显示窗口时,可以在调用时设置Window对象的属性。那么,假设您想将窗口的高度和宽度设置为600x300:首先,您将从这样的事情开始:publicclassShellViewModel:PropertyChangedBa

c# - WPF Caliburn.Micro 和带有 UserControls 问题的 TabControl

我很确定这个问题已经在某个地方得到了回答,但我似乎一辈子都找不到。我正在尝试使用TabControl在UserControl之间切换(每个选项卡都不同,所以不使用Items)这是分割:我有我的主视图和3个用户控件。Mainview有一个选项卡控件-每个选项卡应显示不同的用户控件。我可以轻松地将tabcontrolcontect设置为usercontrol使用但是它没有绑定(bind)到View模型,只绑定(bind)到View。所以我在我的虚拟机中使用了Conductor和ActivateItem。这是它开始变得奇怪/令人沮丧的地方。应用程序开始时选择了Tab0,但内容是Tab2(最后

c# - 使用带有 Caliburn micro Message.Attach 的附加事件

我正在尝试使用Caliburn微消息来触发我创建的附加事件:publicstaticclassDataChanging{publicdelegatevoidDataChangingEventHandler(objectsender,DataChangingEventArgse);publicstaticreadonlyRoutedEventChangingEvent=EventManager.RegisterRoutedEvent("Changing",RoutingStrategy.Bubble,typeof(DataChangingEventHandler),typeof(Data

c# - Caliburn Micro 取消窗口从 ViewModel 关闭

当用户单击窗口的关闭按钮时,是否可以从ViewModel取消关闭,还是我必须求助于代码隐藏?据我所知,CanClose或TryClose不能解决问题。 最佳答案 您可能已经尝试过了,但我刚刚创建了一个快速测试,从Screen派生了一个View模型并覆盖了CanClose。publicclassShellViewModel:Screen{publicoverridevoidCanClose(Actioncallback){//if(somelogic...)callback(false);//willcancelclose}}

c# - Caliburn.Micro 让它将 MainView 中的 UserControls 绑定(bind)到他们的 ViewModels

我有一个MainView.xaml,可以很好地绑定(bind)到MainViewModel。我想尝试的是将主窗体上的许多控件拆分为UserControl。现在,我将UserControls与MainView一起放入Views文件夹中,并将它们命名为LeftSideControlView.xaml和RightSideControlView.xaml。对应的ViewModels在名为LeftSideControlViewModel等的ViewModels文件夹中。我成功地将用户控件添加到主视图:它们在设计器中正确显示。这是xaml中的其中一个:我使用CaSTLe.Windsor在AppBo

c# - WPF:为什么我应该使用现有的 MVVM 框架而不是编写自己的框架?

我想知道MVVM框架能给我带来什么好处(例如mvvmlight、prism等)。如果你能给我从最重要到最不重要的要点。我只是想了解我是应该使用MVVM框架还是自己编写代码。 最佳答案 您可以在没有框架的情况下开始使用MVVM,并且可以随着时间的推移构建自己的基础代码。它可能会帮助您更好地学习模式。一旦你理解了它,你就会更好地体会到像CaliburnMicro这样的框架的力量。给你。当然,这些框架将所有基本模板代码排除在外,但它们还可以添加高级绑定(bind)、操作和组合功能。我刚刚收听了对CaliburnMicro作者的播客采访。也

c# - Caliburn Micro 和 ModernUI 示例/教程

有没有人有关于如何将CaliburnMicro与ModernUi一起使用的示例或教程(https://mui.codeplex.com)? 最佳答案 好吧,我很快就弄乱了它并查看了Mui论坛,这似乎是最好的方法:由于窗口从URL加载内容,您需要采用View优先的方法,然后找到合适的VM并将两者绑定(bind)。执行此操作的最佳方法似乎是通过ContentLoader类,该类用于在请求时将内容加载到ModernWindow中。您可以继承DefaultContentLoader并提供必要的CM魔术来绑定(bind)加载的项目:publi