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メソッドを呼び出しますが、クリックされたサブMenuItemのテキストに対してnullを取得します(他の多くの署名とアクションパラメーターも試しました)-
<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 メソッドに渡すことができる適切な組み合わせを誰かが提案できますか?