Ошибка: System.Windows.Style не является допустимым значением для свойства «ContextMenu».

Я пытаюсь использовать контекстное меню и получаю следующую ошибку, как только нажимаю правую кнопку мыши:

System.Windows.Style» не является допустимым значением свойства «ContextMenu».

XAML-код:

<UserControl ...>
    <UserControl.Resources>
        <ContextMenu x:Key="SharedInstanceContextMenu">
            <MenuItem Header="Edit" Command="{Binding Path=EditSelectedItemCommand}"/>
        </ContextMenu>

        <Style x:Key="MyItemContainerStyle" TargetType="{x:Type ListViewItem}">
            <Setter Property="ContextMenu" Value="{StaticResource SharedInstanceContextMenu}" />
        </Style>
    </UserControl.Resources>

    ...

    <ListView ...
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="ListBoxItem.IsSelected" Value="{Binding Path=IsSelected}" />
                <Setter Property="ContextMenu" Value="{StaticResource MyItemContainerStyle}"/>

(Я использовал точки, чтобы удалить несвязанный код).

Кто-нибудь знает, как предотвратить ошибку (и увидеть контекстное меню)?

Заранее спасибо.


person Michel Keijzers    schedule 18.04.2012    source источник


Ответы (1)


<Setter Property="ContextMenu" Value="{StaticResource MyItemContainerStyle}"/>

MyItemContainerStyle - это Style, а не ContextMenu... вместо этого вам, вероятно, следует написать это:

<Setter Property="ContextMenu" Value="{StaticResource SharedInstanceContextMenu}"/>
person Thomas Levesque    schedule 18.04.2012
comment
Кажется, это работает ... однако команда не запускается (кстати, я мог бы удалить двойной сеттер). Или это другой вопрос, который я должен задать отдельно? - person Michel Keijzers; 19.04.2012
comment
@MichelKeijzers, да, задайте отдельный вопрос, проще будет ответить, чем в комментариях... - person Thomas Levesque; 19.04.2012