微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

silverlight – 绑定选择更改为ViewModel使用Caliburn.Micro

我们使用Caliburn.Micro在一个新的Silverlight项目和其他工作伟大.内置的约定将按钮单击事件绑定到viewmodel,但我不知道在datagrids和comboBox上处理selectionChanged事件的最佳方法是什么.

目前,我绑定到所选项目并调用自定义逻辑,但我觉得这是一个代码的气味,我应该分离属性和selectedChange事件的设置.但是如果我分开这些,我如何通过命令将选择改变的事件绑定到我的viewmodel?或EventTrigger?还是下面的代码可以接受?这是一个很小的变化,但我在这个逻辑无处不在.

private Foo _selectedFoo;
public Foo SelectedFoo
{
    get
    {
        return _Foo;
    }
    set
    {
        if (_Foo != null && _Foo.Equals(value)) return;
        _Foo = value;
        NotifyOfPropertyChange("SelectedFoo");
        NotifyOfPropertyChange("CanRemove");
        LoadRelatedBars();
    }
}

解决方法

我经常使用这种技术,我觉得很舒服.
我发现VM完全可以对自己的状态进行更改,而不需要外部actor(这也是View,但也可能是另外一个组件)来设置新的状态.改变.

但是,如果您真的想要使用Message.Attach附加属性将视图中的事件挂接到VM中的操作:

cal:Message.Attach="[Event SelectionChanged] = [OnSelectionChangedAction]"

(另见http://caliburnmicro.codeplex.com/wikipage?title=All%20About%20Actions)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐