Kye*_*Kye 14 silverlight viewmodel caliburn
我们在新的Silverlight项目上使用Caliburn.Micro,并且每个人都工作得很好.内置约定将按钮单击事件绑定到viewModel,但我不确定在datagrids和comboboxes上处理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();
}
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ola 19
我经常使用这种技术,我觉得很舒服.
我发现VM很好地反应了它自己的状态变化,而不需要外部actor(顺便提一下是View,但也可能是另一个组件)来设置新状态,然后发信号通知VM状态是改变.
但是,如果您确实想要,可以使用Message.Attach附加属性将View中的事件挂钩到VM中的操作:
cal:Message.Attach="[Event SelectionChanged] = [OnSelectionChangedAction]"
Run Code Online (Sandbox Code Playgroud)
(另请参阅https://caliburnmicro.com/documentation/actions)
| 归档时间: |
|
| 查看次数: |
8049 次 |
| 最近记录: |