Я пытаюсь использовать мультисвязывание в контекстном меню, хранящемся в Window.Resources, и я не могу понять, как получить SelectedItem ListBox, к которому я присоединяю меню.
Я думаю, что мне нужно использовать PlacementTarget, но я не могу заставить что-либо работать. Я пытался использовать FindAncestor, но это не сработало. Я также попытался получить список по ElementName безрезультатно.
<Window ...>
<Window.DataContext>
<local:IPViewModel/>
</Window.DataContext>
<Window.Resources>
<sys:Int32 x:Key="Number">0</sys:Int32>
<sys:Int32 x:Key="NumberLetter">1</sys:Int32>
<sys:Int32 x:Key="NumberLetterNumber">2</sys:Int32>
<local:CombineParams x:Key="CombineParams"/>
<ContextMenu x:Key="DetailMenu">
<MenuItem Header = "Number">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding SwitchLabelMode}">
<i:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource CombineParams}">
<!-- The next line is where I'm not sure what to write to get to the listbox -->
<Binding Source="{RelativeSource AncestorType={x:Type ListBox}}"/>
<Binding Source="{StaticResource Number}"/>
</MultiBinding>
</i:InvokeCommandAction.CommandParameter>
</i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
...
</Window.Resources>
...
<ListBox Name="IndexDetailsListBox"
...
ContextMenu="{StaticResource DetailMenu}"
...>
</ListBox>
...
</Window>
Я не могу заставить его вернуть что-либо кроме неустановленного значения.
Я благодарен за любую помощь. Ни у одного из других вопросов, которые я обнаружил, нет контекстного меню в Window.Resources с MultiBinding, которое, похоже, является моей проблемой.