问题标签 [caliburn.micro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2878 浏览

c# - 当 TextBox 获得焦点时需要有关 caliburn Message.Attach 的帮助

我有一个 TextBox,我将重点放在使用绑定到视图模型属性的附加属性上。附加属性调用“UIElement.Focus()”来设置焦点。问题是当 TextBox 以这种方式接收焦点时,“GotFocus”事件不会触发。我正在使用 Caliburn.Micro 的 Message.Attach 来处理该事件。有任何想法吗?

这是文本框。

这是附加属性(在 SO 上找到)。

0 投票
2 回答
1564 浏览

c# - Caliburn Micro:表单验证错误时禁用按钮

我有一个带有绑定到整数的文本框和一个按钮的表单。现在,当文本框的值无效时,我想立即禁用该按钮。

通常,人们会在 VM 中放置一个 Can() 方法,并在属性的设置器中触发 NotifyOfPropertyChange。但是,如果用户输入一个非数值,例如,文本框无效,但从不调用属性设置器,所以我无法通知/禁用按钮。

那么,当用户输入一个不会导致属性设置器被调用的无效值时,如何禁用该按钮?由于我刚刚开始,我对 CM 的了解有限。

0 投票
1 回答
1020 浏览

wpf - 使用 Caliburn.Micro 的组合框驱动 UI 元素

我试图在一个小型测试 WPF 应用程序中了解 Caliburn.Micro 和 MVVM。

我有一个自定义用户控件,它有一个支付组合框(带有现金、支票、信用),在这个组合框旁边,我想根据所选的支付类型加载适当的数据输入视图。例如,如果用户选择现金,也许我只加载带有金额文本字段的视图,但如果用户选择信用,我将加载带有金额、信用卡类型、信用卡号等字段的视图。

Caliburn.Micro 能以任何方式帮助解决这个问题吗?我一直想知道这是否是 Caliburn.Micro 中内置的屏幕和导体功能的用例,但我不确定。如果 Caliburn 可以提供帮助,那么视图模型层次结构应该支持什么?我可以看到有一个 PaymentViewModel 包含一个 PaymentTypeViewModel 的实例,但我不确定如何促进 PaymentTypeViewModel 实例的切换,该实例将以某种方式基于组合框中的当前选择以及加载关联的视图对于该视图模型。

非常感谢您提供的任何建议。

0 投票
2 回答
1203 浏览

wpf - 使用 Caliburn.Micro 实现 WPF UI 自动化?

我正在尝试为使用Caliburn.MicroWhite的 WPF 应用程序编写一些 UI 自动化测试。我正在使用 CM 的内置约定将我的控件绑定到视图模型的属性和方法。我也在使用Conductor类,这样我就可以在一个屏幕上看到多个视图。这通常意味着屏幕上的多个控件最终可能具有相同的x:Name值。它只会绑定到不同的视图模型。在CM 附带的 HelloScreens 示例应用程序中可以看到我想要做什么的一个好主意。

我遇到的问题是我将拥有多个具有相同x:Name属性的 XAML 元素,以便 CM 可以为我处理所有绑定工作。不幸的是,这意味着多个UIItem对象将具有相同的 UI 自动化 ID。例如,我发现获得不同TextBlock元素的唯一方法x:Name="DisplayName"是进行如下调用:

这意味着我的测试需要知道不同控件在屏幕上放置的确切顺序,这看起来很脆弱。只需添加另一个视图模型,我就可以看到我的测试全部中断。

  • x:Name除了使用属性之外,还有其他方法可以指定自动化 ID ?
  • 如果我直接使用 UI 自动化框架而不是使用 White,这会更容易吗?
  • 或者,我真的必须放弃 CM 的基于约定的绑定并赋予每个唯一的x:Name值并手动绑定它们吗?

更新

为了澄清我的意思是同时显示多个视图,这是我的总体布局。我有我ShellViewModel的来源Conductor<IScreen>.Collection.OneActive。然后我的视图有一个ItemsControl绑定到外壳视图模型的Items属性。每个项目模板都显示了一个按钮,用于将特定内容加载IScreenContentControlshell 视图中的 a 中。所以,如果我尝试查找带有 的元素x:Name="DisplayName",我会在 shell 视图上找到标签,在按钮上的ItemsControl标签以及在ContentControl.

0 投票
1 回答
316 浏览

c# - MVVM 和 Caliburn:更换所有屏幕?

我是 MVVM 的新手,并决定在我当前的项目中使用 Caliburn 和 MEF。该项目基本上是一个基于所选产品托管屏幕和工作流的框架。当用户选择产品时,我需要将所有当前屏幕换成与所选产品相关的屏幕。显然,这必须以模块化方式完成,以便可以根据需要插入或移除产品及其相关屏幕。

我不认为这超出了 Caliburn 的范围,但我不确定如何处理它。谁能提供一些关于如何实现这一点的见解?

提前致谢。

0 投票
3 回答
6410 浏览

c# - Caliburn Micro Guard 方法未评估属性变化

我一直在使用 Caliburn Micro MVVM 框架,并且在使用保护方法时遇到了一些问题。

我有一个视图模型:

一个属性:

另外,我的视图模型中有一个带有保护方法的方法

在我看来还有一个按钮:

我遇到的问题是 CanCalculate 方法在加载时执行,但是当我在文本字段中输入值时,它不会重新评估 CanCalculate 方法。我在设置数据绑定视图模型属性时触发了属性更改事件,那么可能是什么问题?

0 投票
2 回答
3202 浏览

windows-phone-7 - 在 WP7 中使用 Caliburn.Micro 将视图模型共享到多个视图

我目前正在开发一个需要同一视图模型的多个视图的项目。让我这样描述:

  • ViewModel:CustomerDetailsViewModel.cs(继承自 Screen 类)
  • 视图:CustomerDetails.cs(此视图将 CustomerDetailsViewModel 作为数据上下文,并由 Caliburn.Micro 自动设置)
  • 视图:CustomerInfo.cs(现在这是我要共享 CustomerDetailsViewModel 的视图,其中可能已经通过 CustomerDetails 视图修改了一些数据)

我目前正在使用 NavigationService 导航到 CustomerInfo 视图。有没有办法将当前视图模型的引用传递给用户在 caliburn.micro 中导航到的视图?

提前致谢

idev

0 投票
5 回答
2304 浏览

wpf - 如何使用 Caliburn Micro 控制 WPF 应用程序中的窗口流

我刚刚开始使用 Caliburn Micro 框架实现我的 WPF 应用程序(这是我第一次使用它)。

我已经配置AppBootstrapper了类并且一切正常(显示了我的主窗口),但现在我想实现我的应用程序的更复杂的行为。一开始我只想显示一个启动画面(它会从服务中加载一些数据)。之后我只想显示一个登录窗口,如果用户登录系统,我的窗口应该会显示。

换句话说,我想实现那种窗口流:

启动画面 -> 登录窗口 -> 主窗口

我试图实现类似ShellController的东西,从Conductor<IScreen>.Collection.OneActiveor派生Conductor<IScreen>,但我不知道如何在没有 View for Shell 的情况下做到这一点(它应该只是整个应用程序的控制器)。

我的另一个想法是覆盖DisplayRootViewAppBootstrapper 中的方法并IWindowManager用于显示窗口。这是好方法吗?

对于任何帮助或建议,我将不胜感激。

0 投票
2 回答
8027 浏览

silverlight - 如何在 Caliburn Micro 中捕获组合框选择?

我刚开始使用 Caliburn Micro。我想要一个带有字符串列表的组合框,当用户选择一个项目时,我想要调用一些通知方法。应该很简单吧?我很不耐烦,5 分钟的谷歌搜索还没有为我解决,所以 Stackers 来救援!

注意:我赞成向我展示如何将其放入视图模型的答案。避免复杂的 XAML 是 MVVM 框架的重点,恕我直言。

0 投票
1 回答
347 浏览

silverlight - 以两种方式绑定两个视图模型中的属性

我正在开始 Caliburn Micro 开发,并且我想到了一种架构,其中视图模型具有由 MEF 注入的属性,这些属性是其他视图模型。这样我就可以在视图中使用 contentcontrols 来按我想要的方式定位它们。

SingleLineTextContentItem 的视图模型如下所示:

现在,我需要一种以双向方式将 NameCaption 属性绑定到 Caption 属性的方法。那可能吗?我是在正确的轨道上还是有更好的方法来做到这一点?

谢谢,

罗兰