Caliburn Micro标签上的运行代码点击

Caliburn Micro标签上的运行代码点击

问题描述:

我正在使用WPF以及Caliburn.Micro。我希望在点击标签时运行任何代码。我尝试了一些Google搜索,发现约cal:Message.AttachCaliburn Micro标签上的运行代码点击

XAML:

<Label x:Name="Info" Content="Info" HorizontalAlignment="Left" Margin="305,440,0,0" 
VerticalAlignment="Top" FontFamily="Tahoma" FontSize="10" FontWeight="Bold" cal:Message.Attach="[Action ShowAboutWindow()]"/> 

C#:

public void ShowAboutWindow() 
{ 
    MessageBox.Show("xyz"); // just to test whether ShowAboutWindow is executed whatsoever (see explanation below) 
    WindowManager.ShowWindow(new AboutViewModel(EventAggregator, WindowManager, SettingsManager)); 
} 

然而,ShowAboutWindow没有任何运行。我加了一个MessageBox,以确保它不是WindowManager搞砸了。

我该如何达到自己的愿望?

编辑1:我之前曾尝试过的方法是将public void Info()方法添加到ViewModel,因为这适用于按钮。但它并没有在这种情况下。

+1

您能向我们展示您的BootStrapper,其次是您使用DI/IoC容器吗? – mvermef

+0

另外为什么要使用标签?一个样式化的按钮看起来和标签一样简单,默认情况下您可以使用您的点击事件。 – Nkosi

+0

@Nkosi我正在使用一个按钮,但是,无论我尝试什么,它都是禁用的。即使我将属性'IsEnabled'设置为'true',它被禁用...?! –

尝试附加到MouseLeftButtonUp事件以模拟鼠标左键释放后的单击事件。

cal:Message.Attach="[Event MouseLeftButtonUp] = [Action ShowAboutWindow()]" 
+0

感谢您发布此尝试。但是,还没有发生。根本不值一提。 –

+0

由于Label没有单击事件处理程序,因此只有选项。 – mvermef

+0

@Çan视图模型或视图后面的代码的'ShowAboutWindow'方法在哪里? – Nkosi