Tag: caliburn.micro

WPF Caliburn.Micro / mvvm导航

我正在建设一个项目,直到现在我遇到的最大问题之一是导航。 我一直在寻找一些时间用于caliburn.micro / mvvm导航的例子,但它们似乎都很长,我真的不太了解它(初学者在这里!)。 关于我的项目的一些信息: 我希望有一个外部窗口/shell,菜单链接/选项卡根据在shell内部单击的按钮打开页面,并且能够打开从一个内部更改页面。 我目前有:ShellViewModel.cs,MainViewModel.cs,我的模型和我的视图。 目前,我需要知道的是如何在启动时使用contentcontrol / frames …加载MainViewModel并使用contentcontrol / frames …,以及如何从一个页面移动到另一个页面。 你也可以用点数来写它,并把我链接到一些有用的例子,我相信我可以从那里继续。 如果可能的话,最好彻底解释一下这些东西。

如何使用Caliburn.Micro MVVM将焦点设置到控件上

我有一个表单,我想在某些用户操作发生时将焦点设置为文本框。 我知道MVVM的做法是绑定到VM属性,但是TextBox没有允许这种情况发生的属性。 从VM设置焦点的最佳方法是什么?

使用Caliburn Micro进行导航

我正在玩Caliburn.Micro并且现在有一个非常简单的应用程序。 它有一个AppView,它实际上有一个用于NavigationBar的ContentControl,一个InnerView和一个StatusBar。 现在我想处理不同内部视图之间的导航。 现在我使用eventaggregator发布一个NavigationEvent,它应该将主窗口的内部视图切换到另一个视图。 这是我对Publish的调用(所有InnerViews都有相同的基类,它有一个IEventAggregator) public void NavigateOverview() { base._eventAggregator.Publish(new NavigateEvent(“OverviewViewModel”)); } 现在我将一个字符串传递给AppViewModel,后者处理NavigateEvent: public void Handle(NavigateEvent navigate) { InnerViewModel target; switch (navigate.TargetViewModel) { case “SelectProjectViewModel”: { target = new SelectProjectViewModel(_eventAggregator); break; } case “OverviewViewModel”: { target = new OverviewViewModel(_eventAggregator); break; } default: { throw new InvalidOperationException(“no target type found”); } } this.CurrentInnerViewModel = target; } […]

Caliburn.Micro让它将MainView中的UserControl绑定到他们的ViewModels

我有一个MainView.xaml,绑定到MainViewModel就好了。 我想尝试的是将我在主窗体上的许多控件分成UserControls。 现在,我将UserControls与MainView一起放在Views文件夹中,并将它们命名为LeftSideControlView.xaml和RightSideControlView.xaml。 相应的ViewModel位于名为LeftSideControlViewModel等的ViewModels文件夹中。 我成功将usercontrols添加到主视图: 它们在设计师中正确显示。 这是xaml中的其中一个: 我使用Castle.Windsor在AppBootstrapper for Caliburn中添加了viewmodels及其接口。 public class ApplicationContainer : WindsorContainer { public ApplicationContainer() { // Register all dependencies here Register( Component.For().ImplementedBy().LifeStyle.Is(LifestyleType.Singleton), Component.For().ImplementedBy().LifeStyle.Is(LifestyleType.Singleton), Component.For().ImplementedBy(), Component.For().ImplementedBy() ); RegisterViewModels(); } private void RegisterViewModels() { Register(AllTypes.FromAssembly(GetType().Assembly) .Where(x => x.Name.EndsWith(“ViewModel”)) .Configure(x => x.LifeStyle.Is(LifestyleType.Transient))); } 这是LeftSideControlViewModel类: using Screen = Caliburn.Micro.Screen; namespace TwitterCaliburnWPF.Library.ViewModels { public class LeftSideControlViewModel […]

Caliburn Micro构造函数注入失败

我正在学习Caliburn Micro并尝试使用官方网站上的EventAggregator 。 但是,我得到了一个例外 “没有为此对象定义无参数构造函数。” 消息本身很清楚,但示例中也没有包含无参数构造函数。 如果我添加一个,带有参数的构造函数不会被命中, IEventAggregator仍未正确注入。 添加无参数构造函数后,这是我的发布者VM(没有它,将抛出exception): public MainViewModel() { } public MainViewModel(IEventAggregator ea) : this() { eventAggregator = ea; } 这是我正在使用的引导程序: public class AppBootstrapper : Bootstrapper { private readonly SimpleContainer container = new SimpleContainer(); protected override void Configure() { container.Singleton(); } } 这是CM的例子: // Creating the EventAggregator as a singleton. public class […]

ReactiveUI和Caliburn Micro在一起?

我一直在使用Caliburn Micro作为我们的MVVM框架在新的Silverlight应用程序上做一些原型工作。 团队一直很满意。 为了解决对服务的限制请求的一些问题,建议我查看ReactiveUI的ReactiveCollections及其INotifyPropertyChanged的实现。 有没有人有任何使用这两者的经验? 由于它们都是主要的MVVM框架,因此存在很多重叠,因此我想知道它是否可能比尝试使它们协同工作更麻烦。 我们真正喜欢Caliburn Micro的一些事情是: 基于公约的约束等……我们认为非常好。 引导。 我们喜欢它的处理方式,在您需要时可以轻松扩展,但开箱即用的东西适用于我们的许多用例。 构图/屏幕管理。 我们非常喜欢Rob的导体,屏幕等概念。它非常适合我们。 ReactiveUI的东西吸引了我们(至少最初)。 Reactive Collections和INotifyPropertyChanged的东西。 特别是节流反应的能力。 Reactive的异步内容似乎比Rob的Co-routine实现更清晰。 我几乎没有机会玩ReactiveUI,但是当我看着它并看到两者之间的重叠时,我想知道谁可能试图将两者都用于一个项目。 我无法通过谷歌找到任何东西(这可能是我的错)。 我很想知道你是否尝试过这个; 你有什么问题? 您使用了每个框架的哪些部分?为什么? 有没有关于将它们一起使用的好例子或博客文章? 干杯, 史蒂夫

WPF MVVM中canvas上的绘制线不起作用

我有这个xaml: <!—-> 在模型中我有: public Canvas DrawCanvas { get; set; } public ImageSourceViewModel() { this.PropertyChanged += this.ImageSourceViewModel_PropertyChanged; this.Scale = 1; this.TranslateX = 0; this.TranslateY = 0; DrawCanvas=new Canvas(); var line = new Line(); line.X1= 1; line.Y1 = 1; line.X2 = 100; line.Y2 = 10; line.Stroke=new SolidColorBrush(Colors.Green); line.StrokeThickness = 2; line.Visibility=Visibility.Visible; DrawCanvas.Children.Add(line); } 我正在使用Caliburn Micro。 它不会在输出上绘制任何行。 这个问题可能有两个原因: […]

如何在C#中使用Caliburn.Micro从ListView中获取选定的项目和事件?

我用MVVM(C#)和XAML用Caliburn.Micro库编写了一个程序,我怎么能: 获取所有选定的项目(不仅仅是一个项目)? 获得选定的变更活动? 单击标题列对项目进行排序? 任何帮助,将不胜感激。 GUI代码: Views \ MainView.xaml ViewModel代码: ViewModels \ MainViewModel.cs using Caliburn.Micro; using ListBox_CaliburnMicro.Model; using ListBox_CaliburnMicro.ViewModels; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input; namespace ListBox_CaliburnMicro { public class MainViewModel : Screen, INotifyPropertyChanged { public MainViewModel() { FillDataFile(); HelloCommand = new RelayCommand(DoHello, CanDoHello); AddCommand […]

如何强制图像控件关闭它在wpf中打开的文件

我的wpf页面上有一个图像,它打开一个图像文件forms的硬盘。 用于定义图像的XAML是: 我正在使用Caliburn Micro,ImageFileName更新为图像控件应显示的文件名。 当图像通过图像控制打开时,我需要更改文件。 但该文件被图像控制锁定,我无法删除或复制任何图像。 如何在打开文件或我需要在文件上复制另一个文件时强制图像关闭文件? 我查了一下,图片没有CashOptio,所以我不能用它。

如何将DesignInstance与Caliburn.Micro一起使用

我正在使用Caliburn.Micro 我有这个WPF视图,在设计时,在诸如firstname等基本属性上成功使用样本数据但是不能找到属性和复杂类型集合的视图 这是SampleData public class SampleReviewerViewModel : ReviewerViewModel { public SampleReviewerViewModel() { Honorific = “Mr”; FirstName = “John”; LastName = “Smith”; ReviewerId = “125634”; Gender = “Male”; JobTitle = “REC Chair”; ReviewerTaskCount = “10”; ReviewerRequestedTaskCount = “20”; ReviewerDispatchedTaskCount = “33”; ReviewerRequestedReturnedCount = “50”; PostalAddress = new AddressViewModel(); CourierAddress = new AddressViewModel(); IsBusy = false; RepositoryItems […]