连接UI元素点击到ViewModel方法?

问题描述 投票:0回答:1

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>
c# .net wpf xaml caliburn.micro
1个回答
1
投票

A Border 没有任何 Click 事件,但你可以处理它的 PreviewMouseLeftButtonDown 事件。

<Border cal:Message.Attach="[Event PreviewMouseLeftButtonDown] = [Action Foo()]">
    <TextBlock Text="Click Me" />
</Border>
© www.soinside.com 2019 - 2024. All rights reserved.