Я хочу создать контекстное меню для кнопки и связать CommandParameter с содержимым кнопки. Кнопка с контекстным меню должна быть многократно используемой в нескольких ситуациях. Я создаю ContextMenu в Window.Resources, также я создал класс UserButton (где у меня расположены мои команды) и стиль для кнопки. В стиле я создал ContextMenu и установил значение ключа для моего ContextMenu, которое я создал ранее. У меня есть ItemsControl, где я создаю список кнопок (Userlist), теперь я хочу получить содержимое кнопки как CommandParameter (для этого примера это имя пользователя).
Связывание, которое я создал, работает до сих пор, но оно возвращает только первое имя пользователя, которое я выбрал из списка пользователей. Когда я щелкаю другого пользователя в списке, он возвращает мне то же значение от первого пользователя, которое применяется ко всем объектам в списке.
<Window.Resources>
<ContextMenu x:Key="cm" DataContext="{StaticResource UserButton}">
<MenuItem Header="Permit" Command="{Binding PermitCommand, diag:PresentationTraceSources.TraceLevel=High}" CommandParameter="{Binding Content, RelativeSource{RelativeSource FindAncestor, AncestorType={x:Type Button}}}"/>
</ContextMenu>
<Style TargetType="Button" x:Key="UserButton">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FontSize" Value="{StaticResource Normal}"/>
<Setter Property="Foreground" Value="white"/>
<Setter Property="ContextMenu">
<Setter.Value>
<StaticResource ResourceKey="cm"/>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>