问题标签 [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.
wpf - 从视图模型打开新窗口
嗨,我有一个初学者的问题。我有外壳(它是 wpf 窗口),在这个外壳中是屏幕(它是一个用户控件/视图模型)。
我想从视图模型中打开新窗口,而不是在 shell 中显示用户控件。
所以我创建了新窗口 - ChatView
使用 MEF导出ChatViewModel。
在视图模型中我有这个方法:
使用 ShowScreen 类帮助我 Mr.Marco Amendola。它看起来像这样:
我的问题是如果我尝试显示新窗口它不起作用,它只有在我在 shell(窗口)中显示新的用户控件时才起作用。
我想实现类似Skype的行为。您有一个带有列表框的主窗口,您双击项目并显示新的聊天窗口。
主窗口可以使用 EventAggregator 在聊天窗口上发布,聊天窗口也可以在主窗口上发布。这是我的目标。
我知道我不能在显示新窗口时使用 ShowScreen 类。我想知道从视图模型创建新窗口并将事件聚合器注入此 vie 模型的正确方法是什么。
有什么建议吗?感谢您的帮助和时间。
caliburn - 相同的视图显示了两次
我想在我的应用程序中实现一个“模块切换器”,它会显示一个类似 alt-tab 的界面,显示打开的模块。
现在它的结构是这样的
ModuleSwitcherView 作为一个对话框从 ModuleShellView 打开并绑定到当前打开的模块。
这会导致后面屏幕中的活动模块转换为空。有没有办法让视图在后台打开,同时在另一个对话框中显示它?alt-tab 窗口只需要视图的“视图”,它不需要是交互式的。
silverlight - System.Windows.Interactivity 中缺少 GoToStateAction 和 KeyTrigger
我正在使用MediaOwl来帮助我开始使用Caliburn.Micro。
在 MediaOwl 中,我删除了对 的引用Microsoft.Expression.Interactions
并添加了对System.Windows.Interactivity
. 这似乎是正确的做法。
问题是我找不到标题中提到的类的替代品:GoToStateAction
和KeyTrigger
.
什么是正确的解决方法?
谢谢。
wpf - WPF,带有MVVM(Caliburn.Micro)的可绑定richTextBox-文档已经属于另一个RichTextBox
我有一个非常有趣的问题。我在 WPF 应用程序中使用了这些技术:Caliburn.Micro 和 MEF。
我从视图模型打开新窗口(不是屏幕)。它运作良好。
在Init-View-Model我有这个方法,它打开新的 WPF 窗口,而不是 shell 中的屏幕。
ShowWindow类如下所示:
我使用事件聚合器将消息从初始化视图模型发送到新窗口。
在我添加richtebox控件之前,一切都运行良好。我需要可绑定的富文本框。所以我
使用 Jason Mueller 的可绑定版本 (http://social.msdn.microsoft.com/forums/en-US/wpf/thread/f77c011a-0aba-449f-b6f4-920e58ebf997/)
新视图模型如下所示:
在 New-View-Model 类中,我在 View 中的 RichTextBox 上绑定了 Conversation 属性。
看法:
问题是。
我从 Init-View-Model 调用方法 public IEnumerable Send() -> 它调用了 New-View-Model 的 cotructor -> 并打开了新窗口。没错
比我第二次调用方法 public IEnumerable Send() 我得到这个错误: System.Argument.Exception {“文档已经属于另一个 RichTextBox。”}
我在可绑定的richTextBox 类中遇到此错误。
我认为问题是因为它只调用一次 New-View-Model 的构造函数。所以我调用了五次方法 Send 但它只调用了一次 New-View-Model 的构造函数。怎么能解决呢?
堆栈跟踪:
问题出在哪里,我尝试了很多方法,但任何方法都不起作用。感谢您的建议和帮助。我很无奈。
events - Caliburn.Micro 和事件聚合器 - 不需要的调用句柄方法
我在 2 个屏幕之间发布/处理消息时遇到一个问题。
我的情况是:
信使屏,是主屏,在聊天屏上发布,都是从屏。带有来自服务器的消息的 Messenger 视图模型句柄。
聊天屏幕可以在信使屏幕上发布消息。信使视图模型在服务器上发送此消息。
Messenger 类如下所示:
从屏类如下所示:
我的问题是:
第一个问题是:
- 我从 ChatViewModel 类中调用方法 SendRp。
- 它在 ChatViewModel 中调用方法 void Publish(),
- 然后是从类 MessengerViewModel 调用方法 void Handle()
- 然后还从 ChatViewModel 类调用方法 void Handle()。
我不想在 ChatViewModel 类中调用方法 Handle()。为什么如果我从 ChatViewModel 向 MessengerViewModel 发送消息在 ChatViewModel 类中也称为方法 Handle?
我的第二个问题是:
我想仅在某些从属屏幕上从 MessengerViewModel 消息发布。
MessgerVieModel 有队列消息:{msg1, msg2, msg3, ..., msgN}
我想发布:
- 从屏幕 #1 上的 msg1。
- 从屏幕 #2 上的 msg2
- ...
- 从屏幕 #3 上的 msg3
wpf - 父子模型交互
是否可以在 caliburn.micro 中设置类似 wpf 窗口所有者的东西?
我有 PARENT VIEW MODEL,从这个模型中我用这个方法打开 CHILD SCREEN {VIEW MODEL}:
此方法创建一个新的 WPF WINDOW - CHILD SCREEN 并使用一些变量初始化 CHILD VIEW MODEL。
我想设置这样的 CHILD_SCREEN.PARENT = PARENT_VIEW_MODEL。
如果我关闭父视图模型,我想实现它也关闭所有子模型。
此外,我如何检查屏幕在我的情况下的 WPF 窗口中是否从 MAIN VIEW MODEL 处于活动状态/非活动状态?
wpf - IEnumerable- caliburn 微
我在打开新窗口时在视图模型中使用此方法:
此方法例如绑定在按钮上。
我尝试在其他 void 方法中使用此方法。像这样的东西:
但它不会打开新窗口。有可能解决这个问题吗?我需要在其他方法 typeof void 中使用 OpenChatScreen 方法,如果可能的话,我想打开新窗口。感谢您的帮助。
代码改善:
我试试这个:
我收到此错误:
*错误 2 无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“Caliburn.Micro.IResult”。存在显式转换(您是否缺少演员表?) C:\Users\Jan\Documents\Visual Studio 2010\Projects\C#\Pokec_Messenger\ver.beta\Pokec__Messenger\Spirit_Caliburn_Micro_v1.1\ViewModels\MessengerViewModel.cs 314 45 Spirit_Caliburn_Micro_v1。 1*
所以我尝试转换为 IResult:
错误:
*错误1 只有赋值、调用、递增、递减和新对象表达式可以作为语句使用 C:\Users\Jan\Documents\Visual Studio 2010\Projects\C#\Pokec_Messenger\ver.beta\Pokec__Messenger\Spirit_Caliburn_Micro_v1.1 \ViewModels\MessengerViewModel.cs 314 29 Spirit_Caliburn_Micro_v1.1*
我不知道如何在 void 方法中使用 OpenChatScreen 方法。
c# - 如何使用 Caliburn.Micro MVVM 将焦点设置到控件
我有一个表单,我想在某些用户操作发生时将焦点设置到文本框。我知道 MVVM 的处理方式是绑定到 VM 属性,但是 TextBox 没有允许这种情况发生的属性。从 VM 设置焦点的最佳方法是什么?
c# - 使用 caliburn.micro 在表单中查找控件的最佳方法是什么?
使用 Caliburn.Micro 时,是否有一种从 ViewModel 的表单中查找命名控件的好方法?IoC 是否提供任何获取表格的方法?
wpf - 方法停用和 TryClose - Caliburn.Micro
如果有人解释我在 MVVM 框架 Caliburn.Micro 中方法 Deactivate 和 TryClose 之间的“差异”,我将不胜感激。
例如我的应用程序有这样的结构:
- 外壳(WPF 窗口)
- SomeScreen(用户控件)- 处于活动状态
我知道如果屏幕停用,每次都会调用 Deactivate 方法。TryClose 方法用于尝试关闭某些屏幕。
我的问题是:
我单击 WPF 窗口上的 X 按钮。首先是在 SomeScreen 对象上调用方法停用,然后在 Shell 对象上调用相同的方法?
停用方法后完全销毁对象?- “删除对他的引用”?
当我关闭作为外壳的 WPF 窗口时,它会从 IConductor 调用哪些方法?