Задайте вопросЗадайте вопрос
 

Предложенный ответPassing DataContext of ListBox to it's context menu

  • 2 июля 2009 г. 0:13Michał Januszczyk Медали пользователяМедали пользователяМедали пользователяМедали пользователяМедали пользователя
     

    I have a question related to data binging.

    How can I pass DataContext of ListView to the ListView's ContextMenu object  ?


    <ListView IsSynchronizedWithCurrentItem="True" Name="masterListView"
      ItemsSource="{Binding ImageCollectionView}" Grid.Row="1">
       
        <ListView.Resources>
            <ContextMenu x:Key="headerContextMenu">
               
               
                <ContextMenu.DataContext>
                 <!-- I tried this binding but with no luck-->
                    <Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}"/>
                </ContextMenu.DataContext>
               
                <MenuItem Command="{Binding DoSomething}">
                    <MenuItem.Header>
                        <cp:GVColumnSelectorControl></cp:GVColumnSelectorControl>
                    </MenuItem.Header>
                </MenuItem>
               
            </ContextMenu>
        </ListView.Resources>
        

        <ListView.GroupStyle>
              <!-- commented out for clarity -->
        </ListView.GroupStyle>
       

       
        <ListView.View>
            <GridView>
               
                <GridView.ColumnHeaderContainerStyle>
                    <Style TargetType="{x:Type GridViewColumnHeader}">
                        <Setter Property="ContextMenu" Value="{StaticResource headerContextMenu}" />
                    </Style>
                </GridView.ColumnHeaderContainerStyle>
               
                <GridViewColumn Width="100" Header="Property 1" DisplayMemberBinding="{Binding SomeProperty1}"></GridViewColumn>
                <GridViewColumn Width="100" Header="Property 2" DisplayMemberBinding="{Binding SomeProperty2}"></GridViewColumn>
                <GridViewColumn Width="100" Header="Property 3" DisplayMemberBinding="{Binding SomeProperty3}"></GridViewColumn>
            </GridView>
        </ListView.View>
       
    </ListView>



    Context menu has to display a UserControl that needs to have access to the same object as the one bound to the ListView




    Thanks in advance for help,
    Regards,
    Michal

Все ответы