WPF: пункты меню связывают параметры команды только один раз

Я заметил это пару раз при использовании меню с командами, они не очень динамичны, проверьте это. Я создаю меню из коллекции цветов, я использую его для раскраски столбца в сетке данных. В любом случае, когда я впервые вызываю меню (это контекстное меню), происходит привязка параметров команды, и она связывается со столбцом, в котором было открыто контекстное меню. Однако в следующий раз, когда я поднимаю его, кажется, что wpf кэширует меню и не перепривязывает параметр команды. поэтому я могу установить цвет только в исходном столбце, в котором появилось контекстное меню.

Я обходил эту ситуацию в прошлом, делая меню полностью динамичным и уничтожая коллекцию, когда меню закрывалось, и заставляя пересобирать при следующем открытии, мне не нравится этот хак. кто-нибудь есть лучший способ?

    <MenuItem
       Header="Colour"
       ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:ResultEditorGrid}}, Path=ColumnColourCollection}"
       ItemTemplate="{StaticResource colourHeader}" >
       <MenuItem.Icon>
          <Image
             Source="{StaticResource ColumnShowIcon16}" />
       </MenuItem.Icon>
       <MenuItem.ItemContainerStyle>
          <Style
             TargetType="MenuItem"
             BasedOn="{StaticResource systemMenuItemStyle}">
             <!--Warning dont change the order of the following two setters
                                otherwise the command parameter gets set after the command fires,
                                not mush use eh?-->
             <Setter
                Property="CommandParameter">
                <Setter.Value>
                   <MultiBinding>
                      <MultiBinding.Converter>
                         <local:ColumnAndColourMultiConverter/>
                      </MultiBinding.Converter>
                      <Binding RelativeSource="{RelativeSource AncestorType={x:Type DataGridColumnHeader}}" Path="Column"/>
                      <Binding Path="."/>
                   </MultiBinding>
                </Setter.Value>
             </Setter>
             <Setter
                Property="Command"
                Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:ResultEditorGrid}}, Path=ColourColumnCommand}" />
          </Style>
       </MenuItem.ItemContainerStyle>
    </MenuItem>

Ответы на вопрос(1)

Ваш ответ на вопрос