问题标签 [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.
wpf - Caliburn Micro - UI 未第二次更新
我正在开发一个使用 Caliburn Micro 的 WPF 项目。我遇到了第二次打开视图时视图中的控件没有更新的问题。第一次数据绑定工作正常。
当我在第二次调用 View 时单步执行 ViewModel 时,我可以看到数据绑定属性正在获取新值并调用 NotifyOfPropertyChange() 但更改未反映在 UI 中。有任何想法吗?我的视图继承PropertyChangedBase()
以下是我在视图模型中的属性
和 Xaml
c# - 嵌套用户控件的数据上下文
背景 :-
我有一个 wpf 视图,其中包含一个组合框,该组合框由使用 caliburn micro/ninject 和 mvvm 模式的视图模型填充;此视图还包含一个堆栈面板区域。当用户从组合框中选择适当的选项时,我将适当的用户控件插入到堆栈面板中,向用户呈现到相关显示的无缝过渡。
显示在堆栈面板中的每个“嵌套”用户控件都有自己的视图模型,由 caliburn micro 自动关联。
问题 :-
“嵌套”用户控件绑定都尝试引用父视图模型,而不是专门与它们关联的视图模型。
最初,我可以通过指定来解决这个问题:-
但这需要视图模型中的无参数构造函数,但我需要能够将参数传递给此视图模型,以便 Ninject 可以注入诸如 EventAggregator 之类的对象。
由于我对 WPF 还很陌生,所以在圆圈中四处走动,因此将不胜感激。
谢谢。
詹姆士。
c# - 在 WPF / Ninject 中访问单例事件聚合器
我们正在使用 WPF/Caliburn Micro 和 Ninject 并有一个引导程序调用它:-
我的理解是,每次实例化一个对象时,这将被注入到构造函数参数列表中,但在某些情况下构造函数必须是无参数的。当我们可以在构造函数中没有参数时,我们如何访问 EventAggregator?
wpf - Caliburn 中 View 和 ViewModel 之间的交互
我是 Caliburn 的新来者。
我有几个关于 MVVM 和 Caliburn 的问题。
视图如何在 ViewModel 上显式调用方法?Caliburn 首先调用 ViewModel 构造函数。那么如果是,那么实例将被包含在哪里?我的 View 中的代码此刻创建了一个新实例(我需要显式调用 ViewModel 上的方法)。但是关于 ViewModel 应该已经实例化,这是愚蠢的。
如何在 UI 线程上强制绑定更新?
data-binding - 如何绑定控件属性?
我正在使用来自 Caliburn.Micro 的基于约定的绑定,但我有一个小问题:
如何设置绑定应绑定到的属性?如果我创建一个带有 的控件x:Name="SomeProperty"
,我该如何选择是否SomeProperty
应该将 的值绑定到我的控件的Value
属性、我的控件的OnClick
事件或不同的东西,如Content
或Tag
属性?
示例:我HyperlinkButton
想要绑定到特定 URL,并且想将其绑定OnClick
到 ViewModel 中的事件处理程序。
然而,Content 属性不是用 URL 的值填充的,Read more
而是用 URL 的值填充的。在此示例中,我如何:
- 将导航 URI 设置为我的 ViewModel 属性中的 URL 值
- 将内容设置为“阅读更多”
- 在我的 ViewModel 中指定一个事件处理程序来处理点击
任何人都可以帮助我吗?
wpf - 无法在同一视图中添加两个用户控件
我有一个列表视图,其中有两个子视图。一个是显示视图,另一个是编辑视图。这是我定义列表(父)视图的方式。请注意,我希望两个子用户控件在父控件中占据不同的空间。
然后在我的视图模型中,我根据用户响应以下列方式激活这些项目
**查看模型**
上面的代码有效,但细节视图加载在选项卡空间(用于编辑视图的空间)中。实际上,ActivateItem(viewModel) 确实选择了要显示的正确视图类型,但它加载到了显示视图的错误位置,即显示视图加载到了屏幕上的编辑视图空间中。当然,我错过了一些明显的东西。
总之,我们如何让定义在 Parent UserControl 中的两个 UserControl 在自己的空间中激活?
编辑 - 1:
这是两个屏幕截图,分别显示了我需要加载编辑视图和详细视图的位置。
正如您在第二个屏幕截图中看到的那样,详细视图被加载到详细信息区域以及编辑区域(选项卡)中。我不希望详细视图仅出现在详细信息区域中。编辑区仅用于编辑视图。
这是我用来生成屏幕截图的代码。
包含两个视图的主视图
编辑2: 我认为我非常接近让它工作。根据您的建议,我修改了 Main(Parent) 容器,如下所示。
编辑屏幕和详细信息屏幕现在出现在适当的位置。但是,没有调用 Detail ViewModels OnActivate,因此我得到了一个空白的详细视图,没有填充任何变量。详细信息视图字段的所有加载都在OnActivate()覆盖上完成。这是我的 GroupDetailViewModel 的定义方式
所以当然,我缺少一些属性。还是我必须在 GroupDetailViewModel 上调用一些方法来手动加载详细信息?
c# - 在 GridControl.View 中绑定 IsEnabled 属性
我尝试IsEnabled
在上下文菜单项中绑定属性。上下文菜单位于 Devexpress 中GridControl.View
。
我认为问题出在 DataContext 中。barbutton 项正在网格的 DataContext 中搜索属性HasPermissionDelete
。但这不是视图模型的数据上下文。我的财产HasPermissionDelete
在 ViewModel 上。
我正在使用 caliburn.micro。
你能帮我修复这个绑定吗?
我的xml代码:
wpf - 带有附加事件的 Caliburn,目标失败
好的,所以我正在尝试将附加事件添加到控件。现在 Caliburn 并不天真地支持这一点,但我使用了另一篇文章中的代码,该文章似乎提供了一种解决方法。我基本上需要一种方法来添加这种代码this.AddHandler(RadDragAndDropManager.DragInfoEvent, new EventHandler<DragDropEventArgs>(OnDragInfo), true);
,但 caliburn 不支持附加事件。这是我的代码:
RoutedEventTrigger 定义如下:
在我的 ViewModel 中,我只是有一个像这样的处理程序:
当我运行这个时,我得到的错误是base.OnEvent(args);
关于No target found for method OnDropQuery.
我正在努力弄清楚为什么这不起作用。
c# - WPF和Caliburn C#编译后不渲染窗口
我想尝试用 Caliburn.Micro 框架创建一个 WPF 应用程序,但是我遇到了一个问题。我在 Silverlight 中看到了许多教程资源,但在 WPF 上并不好。我拥有 Silverlight 教程中的所有内容,所有内容都已编译但未渲染。
引导程序
应用视图
应用模型视图
谢谢您的回复。
c# - 找不到 Caliburn 抛出的方法的目标
我正在尝试创建一个应用程序,它允许我在 Caliburn.Micro for MVVM 的帮助下在画布组件上绘制一些涂鸦。当我运行应用程序并单击画布时,我得到“没有找到方法 OnMouseDown 的目标”。例外。我定义了调用 MouseDown 事件时要调用的方法,但不知何故 Caliburn 找不到它。
项目文件可在此处获得:SketchingTool.zip