我加載編程一個radMenu使用Caliburn.Micro沒有問題,XAML中看起來是這樣的:RadMenu和RadMenuItem Caliburn.Micro
<telerik:RadMenu ItemsSource="{Binding .MenuItems}"
VerticalAlignment="Top"
cal:Action.TargetWithoutContext="{Binding RelativeSource={RelativeSource Self}}"
cal:Message.Attach="[Event ItemClick] = [Action MenuItemClick($this)]">
<telerik:RadMenu.ItemContainerStyle>
<Style TargetType="telerik:RadMenuItem">
<Setter Property="Tag"
Value="{Binding .Tag}" />
<Setter Property="Header"
Value="{Binding .Text}" />
<Setter Property="Icon"
Value="{Binding .Image}" />
<Setter Property="ItemsSource"
Value="{Binding .SubItems}" />
<Setter Property="Command"
Value="{Binding .SubItems}" />
</Style>
</telerik:RadMenu.ItemContainerStyle>
</telerik:RadMenu>
在我的ViewModel我有我從數據庫中填寫相應的MenuItems屬性。代碼如下所示:
Property MenuItems As New ObservableCollection(Of MenuItem)
Public Sub MenuItemClick(item As MenuItem)
MessageBox.Show(item.Tag)
End Sub
的問題是itemClick事件的線路,我需要接受radMenuItem對象,我的意思是,我需要知道哪個菜單項被點擊了。
I'v在Action.TargetWithoutContext屬性上嘗試過各種組合,到目前爲止,我只獲得MenuItems集合。
在此先感謝
我最終使用了你提到的第一種方法工作,但現在我正在閱讀你的答案我現在正在改變它。感謝您花時間回答我已經學到了很多答案。 – Okura 2013-04-17 02:31:08