Caliburn Micro WPF:具有保护属性的Message.Attach禁用整个主机控制

我正在将Caliburn.Micro(2.0.2,当前最新版本)与WPF应用程序一起使用。假设我有一个简单的项目列表,并且想对所选项目启用一些操作。该动作绑定到一个按钮。

因此,我的VM公开了这些项目的可绑定集合(例如Persons),并且相同类型的对象绑定到了所选项目(例如SelectedPerson)。说动作对应于一个名为的方法Test,并且我有一个guard属性CanTest,当所选项目不为null时,该属性返回true。SelectedPerson改变,我也叫NotifyOfPropertyChangedCanTest

这种琐碎的情况很好:当什么都没有选择时,与我的动作对应的按钮被禁用;当我选择任何项目时,它将被启用。

当我使用以下方法将方法绑定到控件事件时,就会出现问题Message.Attach:说我想将其附加到鼠标双击上。我的XAML如下所示:

<ListBox ItemsSource="{Binding Path=Persons,Mode=OneWay}"
         SelectedItem="{Binding Path=SelectedPerson,Mode=TwoWay}"
         cal:Message.Attach="[Event MouseDoubleClick] = [Action Test]"/>

这将完全禁用该控件(整个控件,不仅是后代按钮,因此我永远无法在ListBox中选择一个项目,该项目永远保持禁用状态)。我必须启用它的唯一方法是从VM(或Message.Attach从视图)中删除guard属性

您可以在http://1drv.ms/1OTSgq2找到一个简单的repro

我还在https://caliburnmicro.codeplex.com/discussions/246571上找到了这篇文章,这似乎表明附加一条消息会禁用保护属性的基于约定的逻辑,因此您必须显式绑定IsEnabled控件属性到您的警卫财产。我尝试过,但是没有任何变化。

古鲁多

因为卡利的约定,你的情况我建议仅仅是属性名称更改CanTest为类似IsTestEnabled

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有WPF MVVM Caliburn Micro的URF

来自分类Dev

Caliburn Micro Message.attach不考虑datacontext的更改

来自分类Dev

使用Caliburn Micro从视图模型中的属性名称获取控制

来自分类Dev

带有 Caliburn.Micro 绑定的 UWP 模板控制,如何?

来自分类Dev

具有多个ViewModel的Caliburn.micro

来自分类Dev

WPF-Caliburn Micro中的ScrollViewer

来自分类Dev

使用Caliburn Micro在WPF中更新DataGrid

来自分类Dev

WPF + Caliburn Micro + MVVM:TabItem 处理

来自分类Dev

带有Caliburn.Micro的ModalContentPresenter

来自分类Dev

具有不同名称空间的Caliburn Micro ViewLocator

来自分类Dev

Caliburn Micro Datagrid绑定

来自分类Dev

Caliburn Micro发布/订阅

来自分类Dev

Caliburn Micro,聚焦MV

来自分类Dev

Caliburn.Micro带控制器吗?

来自分类Dev

Caliburn.Micro带控制器吗?

来自分类Dev

Caliburn.Micro 2.0和WP 8.1-Message.Attach无法将$ eventArgs发送到事件处理程序

来自分类Dev

WPF Caliburn.Micro和TabControl与UserControls问题

来自分类Dev

WPF Caliburn.Micro ItemsControl ContextMenu找不到方法

来自分类Dev

WPF + Caliburn Micro:如何捕捉Window Close事件?

来自分类Dev

使用Caliburn.Micro的单实例WPF应用程序

来自分类Dev

如何将WPF NotifyIcon与Caliburn.Micro集成

来自分类Dev

WPF Caliburn.Micro DataGrid单元在事件之前未更新

来自分类Dev

WPF功能区Fluent:DropDownButton + Caliburn.Micro事件

来自分类Dev

使用 Caliburn.Micro 在 MVVM WPF 中绑定

来自分类Dev

Caliburn.micro:ViewModel中的深层属性更改INPC捕获

来自分类Dev

Caliburn.Micro MVVM WPF-在用户编辑了DataGrid后启用按钮,否则将其禁用

来自分类Dev

Windows Phone中带有Caliburn Micro的弹出窗口

来自分类Dev

带有ControlTemplate的ContextMenu中的Caliburn Micro Action

来自分类Dev

Caliburn.micro“有时”绑定BindableCollection项目

Related 相关文章

  1. 1

    具有WPF MVVM Caliburn Micro的URF

  2. 2

    Caliburn Micro Message.attach不考虑datacontext的更改

  3. 3

    使用Caliburn Micro从视图模型中的属性名称获取控制

  4. 4

    带有 Caliburn.Micro 绑定的 UWP 模板控制,如何?

  5. 5

    具有多个ViewModel的Caliburn.micro

  6. 6

    WPF-Caliburn Micro中的ScrollViewer

  7. 7

    使用Caliburn Micro在WPF中更新DataGrid

  8. 8

    WPF + Caliburn Micro + MVVM:TabItem 处理

  9. 9

    带有Caliburn.Micro的ModalContentPresenter

  10. 10

    具有不同名称空间的Caliburn Micro ViewLocator

  11. 11

    Caliburn Micro Datagrid绑定

  12. 12

    Caliburn Micro发布/订阅

  13. 13

    Caliburn Micro,聚焦MV

  14. 14

    Caliburn.Micro带控制器吗?

  15. 15

    Caliburn.Micro带控制器吗?

  16. 16

    Caliburn.Micro 2.0和WP 8.1-Message.Attach无法将$ eventArgs发送到事件处理程序

  17. 17

    WPF Caliburn.Micro和TabControl与UserControls问题

  18. 18

    WPF Caliburn.Micro ItemsControl ContextMenu找不到方法

  19. 19

    WPF + Caliburn Micro:如何捕捉Window Close事件?

  20. 20

    使用Caliburn.Micro的单实例WPF应用程序

  21. 21

    如何将WPF NotifyIcon与Caliburn.Micro集成

  22. 22

    WPF Caliburn.Micro DataGrid单元在事件之前未更新

  23. 23

    WPF功能区Fluent:DropDownButton + Caliburn.Micro事件

  24. 24

    使用 Caliburn.Micro 在 MVVM WPF 中绑定

  25. 25

    Caliburn.micro:ViewModel中的深层属性更改INPC捕获

  26. 26

    Caliburn.Micro MVVM WPF-在用户编辑了DataGrid后启用按钮,否则将其禁用

  27. 27

    Windows Phone中带有Caliburn Micro的弹出窗口

  28. 28

    带有ControlTemplate的ContextMenu中的Caliburn Micro Action

  29. 29

    Caliburn.micro“有时”绑定BindableCollection项目

热门标签

归档