У меня есть меню верхнего уровня в моем ShellView, и при выборе подэлемента MenuItem я хотел бы вызвать следующий метод в ShellViewModel (Conductor.Collection.AllActive).
public void SelectServer(string pServerName)
{
mDefaultClaimServer = pServerName;
}
Следующее не работает, так как метод не вызывается (я пробовал различные сигнатуры и параметры действия) -
<Menu Name="menu1" DockPanel.Dock="Top">
<MenuItem Header="Select Server" Name="ClaimServers">
<MenuItem.ItemTemplate>
<DataTemplate>
<!-- we need this else we show the class name -->
<TextBlock Text="{Binding DisplayName}">
<ContentControl cal:Message.Attach="[Event Click] = [Action TxTester.ShellViewModel.SelectServer($Text)]"/>
</TextBlock>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
</Menu>
Следующее вызывает метод ShellViewModel SelectServer, но я получаю null для текста щелкнутого подпункта MenuItem (я также пробовал многие другие подписи и параметры действия) -
<Menu Name="menu1" DockPanel.Dock="Top">
<MenuItem Header="Select Server" Name="ClaimServers" cal:Message.Attach="SelectServer($this.Text)">
<MenuItem.ItemTemplate>
<DataTemplate>
<!-- we need this else we show the class name -->
<TextBlock Text="{Binding DisplayName}" />
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
</Menu>
Я уже давно с этим борюсь и не могу понять. Может ли кто-нибудь предложить правильную комбинацию, в которой я могу передать текст заголовка подпункта MenuItem методу ShellViewModel SelectServer?