簡體   English   中英

WPF:將ContextMenu添加到TreeView

[英]WPF: Add ContextMenu to TreeView

有一天,我很自豪我終於設法在TreeView一個葉子上添加了一個ContextMenu ,但后來我發現它彈出錯誤的節點。

我的XAML:

    <TreeView 
        Grid.Row="1" 
        Grid.Column="0"
        x:Name="TvShowsTreeView"
        ItemsSource="{Binding TvShows}"
        SelectedItemChanged="TvShowsTreeViewOnSelectedItemChanged">

        <!-- Season template -->
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Seasons}">
                <TextBlock Text="{Binding Name}">
                    <TextBlock.ContextMenu>
                        <ContextMenu>
                            <MenuItem Header="Hide"></MenuItem>
                        </ContextMenu>
                    </TextBlock.ContextMenu>
                </TextBlock>

            </HierarchicalDataTemplate>

        </TreeView.ItemTemplate>
    </TreeView>

當我運行這個時,我會在TvShows上獲得一個上下文菜單,而不是Seasons

我很親密,對吧? :)誰能在這里幫助我?

正確的XAML應該是這樣的:

    <TreeView 
        Grid.Row="1" 
        Grid.Column="0"
        x:Name="TvShowsTreeView"
        ItemsSource="{Binding TvShows}"
        SelectedItemChanged="TvShowsTreeViewOnSelectedItemChanged">

        <!-- TvShows template -->
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Seasons}">
                <TextBlock Text="{Binding Name}" />

                <!-- Seasons template -->
                <HierarchicalDataTemplate.ItemTemplate>
                    <HierarchicalDataTemplate>
                        <TextBlock Text="{Binding Name}">
                            <TextBlock.ContextMenu>
                                <ContextMenu>
                                    <MenuItem Header="Hide"></MenuItem>
                                </ContextMenu>
                            </TextBlock.ContextMenu>
                        </TextBlock>
                    </HierarchicalDataTemplate>
                </HierarchicalDataTemplate.ItemTemplate>
            </HierarchicalDataTemplate>

        </TreeView.ItemTemplate>
    </TreeView>

附加的HierarchicalDataTemplate指定Seasons的模板,它本身不需要綁定ItemSource,因為它不包含節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM