私はWPF
と一緒にCaliburn.Micro
を使用しています。私は、ラベルがクリックされたときに任意のコードを実行したい。私はいくつかのグーグルを試み、約cal:Message.Attach
を発見した。キャリバーマイクロコードをクリックしてラベルをクリック
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
は一切実行されません。私はを追加して、WindowManager
がそれを台無しにしていないことを確認しました。
私は自分が望むものをどのように達成できますか?
EDIT 1:私が以前に試したことは、ViewModel
にpublic void Info()
メソッドを追加していました。これはボタンで機能します。しかし、この場合はそうではありませんでした。
私たちにあなたのBootStrapperを見せることができますか、第2にDI/IoCコンテナを使用していますか? – mvermef
なぜラベルを使用するのですか?スタイル付きのボタンはラベルと同じように見える場合があり、デフォルトではクリックイベントが使用可能になります。 – Nkosi
@Nkosi今はボタンを使用していますが、何をしようとしても無効です。プロパティIsEnabledをtrueに設定しても、無効になっています...? –