与 Caliburn.Micro 我可以在我的ViewModel中创建一个按钮,并使其触发一个方法,而实际上不需要声明任何ICommand属性。
我的View.xaml
<UserControl [...]>
<Button x:Name="Foo" />
</UserControl>
MyViewModel.cs
public class MyViewModel : PropertyChangedBase
{
public void Foo()
{
MessageBox.Show("Hello world");
}
}
在不使用后台代码的情况下,我可以用Grid来做类似的事情吗?或者任何其他UI元素?也就是说,当一个特定的UI元素被点击时,ViewModel上的一个方法就会被执行,而不需要声明任何ICommand属性?
我试过这样的语法,但似乎什么也没发生。
<UserControl [...]>
<Border cal:Message.Attach="[Event Click] = [Action Foo()]">
<TextBlock Text="Click Me" />
</Border>
</UserControl>
A Border
没有任何 Click
事件,但你可以处理它的 PreviewMouseLeftButtonDown
事件。
<Border cal:Message.Attach="[Event PreviewMouseLeftButtonDown] = [Action Foo()]">
<TextBlock Text="Click Me" />
</Border>