问题标签 [caliburn]
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.
c# - 带有 Caliburn + MEF MVVM WPF 的登录窗口
尝试使用带有 caliburn + mef 的登录窗口
我也收到这两个警告
在此先感谢,我知道 caliburn 会为我节省很多时间,我很乐意让它发挥作用!
在这个项目中,我的 IShell 是一个空接口。
登录窗口视图:
LoginWindowView 代码隐藏:
主视图:
wpf - 在 Caliburn 中绑定画布
我目前正在使用 Caliburn,并且有以下情况。
我有一个 MultiPresenterManager 并且 CurrentPresenter 设置为一个包含 Canvas 的 Presenter。在 Canvas Presenter 视图中,我有一个 ContentControl 与 Content 绑定 ({Binding Canvas}),然后 caliburn 的事件与 ContentControl 挂钩。
我希望能够在画布上移动对象。
我需要 1. 将 Canvas 绑定到视图中的某个元素 2. 将事件(MouseMove、MouseDown)绑定到 Canvas
我似乎无法正确处理这种行为。
有人有什么想法吗?
wpf - 使用通知 ICollectionView 更新 BindableCollection 中的项目
嗨,我在视图中的 ListBox 控件上绑定了来自 Caliburn Micro 的集合。就这个。
ListBox 项目是 UserInfo 的类型。
嗨,我对列表框项目进行排序和分组,为此我使用 CollectioView。
当我初始化 ListBox 时,我使用此方法对项目进行排序和分组。
TextStatus 和 Nick 是 userInfo 类的属性。
当我更新可绑定集合 Friend 中项目的值时,我想有一种方法如何通知集合视图有关此更改。因为我需要将项目移动到正确/好组。
例如
我在网上改变价值;
在这里我想通知集合视图(_currentView)关于朋友集合的变化。
mvvm - 用于模块化 MVVM 应用程序的 Prism + MEF 替代品
我和我的团队开始计划开发一个模块化应用程序,该应用程序可能会多目标 WPF 和 Silverlight。
我个人有一些使用旧版本 PRISM 使用 MVVM 模式构建复合 Silverlight 应用程序的经验。当时我们还不熟悉 MEF 来处理各种模块依赖关系,所以我们没有使用它。
我们没有与任何特定的框架结婚,但想使用其中一个更大的参与者。因此,我们已经开始研究 Caliburn/Caliburn Micro、Prism、MVVM Light 和 Reactive UI。
我读过的关于模块化的大部分内容都建议使用 PRISM 和 MEF 来处理这部分过程。由于我仍在思考其中的一些内容,因此我不确定我是否遗漏了一些明显的选项。我能够在Caliburn Micro 和 MEF上找到这篇文章。
谁能指出我使用其他一些框架来组成复合应用程序的类似文章,类似于 PRSIM 使用区域等的方式?理想情况下,我想限制所需框架的数量,同时提供最大的灵活性。我们不反对采用“同类最佳”的方法,例如使用 MEF/PRISM 来处理合成,并使用 MVVM Light 进行视图管理等;但是为什么在 1 的时候使用 2 呢?
wpf - Caliburn 不能很好地与 DevExpress NavBarControl 配合使用
有没有人有过使用 Caliburn 和 DevExpress NavBarControl 的经验。我正在尝试将 NavBarItems 列表绑定到我的视图模型。这不起作用,我确定这是因为 Caliburn 的绑定。
例如
c# - 混合 winForm/wpf 应用程序中的 ReactiveUI
我有这个 winForm 应用程序,我们即将用 WPF 重写一些表单。所以到目前为止我的计划是创建 wpf 用户控件并将它们添加到经典的 winforms 中。到现在为止还挺好。
现在考虑使用 MVVM 框架让生活更轻松,我在 Caliburn 和 ReactiveUI 上工作。在这种情况下,Caliburn 使用起来并不容易,因为它需要在 wpf 应用程序的应用程序级别进行初始化。这同样适用于 ReactiveUI 还是我可以让它与几个 wpf 控件一起使用?
c# - Caliburn Can{Action} 未在 Refresh() 上更新
可以添加按钮的代码是这样的。
如果我这样编写代码,CanAddAllToProfile 获取不会被执行。
如果我做一个 NotifyOfPropertyChange(() => CanAddAllToProfile) 它工作
我也试过 Refresh();
我从 Screen 继承了 viewmodel 任何想法我有一堆其他需要执行的 CanExecuteBindings。显然这可以解决,但我想知道我是否做错了什么。
c# - 带有 Show.Busy() 和 Show.NotBusy() 的 Caliburn 错误
我有一个使用 Show.Dialog() 显示的对话框,并且在附加到视图的 Loaded 事件的方法中具有这些步骤:
- Show.Busy()
- 可能长时间运行的 Web 请求(我在这里有一个自定义的异步 IResult)
- 如果通过 Show.MessageBox() 出错则弹出
- Show.NotBusy()
我发现如果您在第 2 步关闭我的视图需要一段时间,然后重新打开,则不会显示新视图上第 1 步的忙碌指示符。
所以一开始,我以为是我的错,如果视图被关闭,我就放了一个简单的机制来取消第 4 步。但没有运气...
从它的样子来看,第 1 步中的 Show.Busy() 正在尝试与已经关闭的视图进行交互。这是 Caliburn 中的错误吗?
我的 ViewModel 是一个单例,所以这也可能归因于我认为的问题。对于测试,我切换到 IsBusy 布尔属性,问题就消失了。然而,在我的整个应用程序中,这将是一个很大的改变。
对任何解决方法的想法?或者其中一个 Caliburn 人可以在这里帮助我吗?我正在使用最新版本的完整版 Caliburn。
更新:
我尝试了 Marco 的解决方法,导入 IBusyService 并在我的 ViewModel 中执行此操作:
但这似乎没有帮助。如果我做一个简单的复制会有帮助吗?
更新#2:
我继续进行了复制,因为很多时候会发现问题。
原来,这与我必须直接调用 IWindowManager 有关。我的应用程序部分是带有插件架构的 WinForms,我们使用了几个基于 Caliburn 的插件。
以下是导致问题的代码示例:
这是在 WinForms NotifyIcon MenuItem 的单击事件处理程序中。
_child 是一个 Screen,BringToFront() 调用底层 View 的 Activate 方法(当然是通过服务)。_manager 是 IWindowManager。
如果您直接运行 Caliburn,则 Show.Dialog() 不会导致问题。
关于解决方法的任何想法?我不确定这是否是 Caliburn 问题,但可能只是由直接使用 IWindowManager 引起的。
c# - Caliburn - IBusyService 逻辑
假设我有一个带有 BusyIndicator 的视图和一个附加到操作的按钮。
当 Show.Busy() 从操作中产生时,禁用按钮的最佳方法是什么?有没有一种简单的方法来连接 CanMyAction 布尔属性?
现在,我继承了 DefaultBusyService 来完成工作,但它对我来说似乎很难看。
silverlight - 具有独立和软件即服务模型的 LOB 应用程序的技术选择
提前为文字墙道歉!
设想:
我们正在研究为需要支持“独立”模型(在台式机上运行的前端 + 后端)以及本地服务器模式(安装在本地服务器上的后端)的 LOB 应用程序选择什么技术通过互联网作为软件即服务(安装在托管服务器上的后端)。
我们希望最大限度地减少开发工作,这就是我们选择 Silverlight 前端的原因。我们打算为所有 3 个模型重用相同的代码库。
LOB 应用程序需要大量的数据输入,并且会在后端进行一些数学运算。我们会有大量的意见。我们将拥有一个包含 80 多个表的数据库。我们目前拥有自己的 DAL,使我们能够将 MSSQL、MySQL 和 Oracle 用作 DBMS。
当前的愿景是使用 Agile TDD Silverlight 4.0 MVVM 应用程序作为带有 Caliburn 框架的 C# 前端。并将 WCF(RIA?)服务作为后端(非 Silverlight,纯 .NET 4.0)。这很适合不同的模型,因为这只是后端安装位置的问题。对于 SAAS 模型,我们在 Internet 上有一个服务器可以驻留后端。
问题:
这听起来是否可行,还是认为我们可以为不同的模型拥有相同的代码库?
关于后端,我们正在研究 WCF RIA 服务,但希望有“消息安全”,这在 WCF 的 Silverlight 实现中似乎是不可能的。WCF RIA 是一个有效的选择吗?还是以任何方式就安全性而言,普通的 WCF “更好”?
关于我们需要支持的不同 DBMS。这对 WCF RIA 服务可行吗?还是我们最好创建自己的 BLL/DAL 并通过普通的 WCF 公开它?
有没有人有使用不使用内联 SQL 只使用存储过程的多个 DBMS 设置的经验?原始应用程序大量使用内联 SQL,但我们想知道仅使用不同 DBMS 中的存储过程,该应用程序的可维护性如何。
最后一个问题,关于 MVVM 和安全性,出于安全/代码保护的原因,我们希望在后端“隐藏”尽可能多的逻辑。对此做什么是合乎逻辑的?我们需要做 TDD,所以我们需要能够模拟模型,这意味着它需要在前端可用。但是我们需要将所有逻辑都放在后端。我们是否应该在前端使用“包装器”来“链接”后端的“真实模型”?一种与后端模型一对一匹配的虚拟模型。或者有没有“更好”的方法来做到这一点?
提前感谢您在这些主题中为我们提供的任何帮助!
休伦。