zoukankan      html  css  js  c++  java
  • 获取ContextMeunItem相对应的逻辑层对象

    暂时没有把所有倒立弄得很清楚.简单的描述一下问题的关键.

    有一个TreeView

    <TreeView Name="todoTreeView" ItemTemplate="{StaticResource CheckBoxItemTemplate}"/>
    

    相对应的模板如下

    <HierarchicalDataTemplate x:Key="CheckBoxItemTemplate"
            ItemsSource="{Binding Children}">
        <StackPanel Orientation="Horizontal">
            <StackPanel.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="添加子任务" Click="AddTask_Click"/>
                </ContextMenu>
            </StackPanel.ContextMenu>
            <CheckBox VerticalAlignment="Center" Focusable="False"
                IsChecked="{Binding IsFinished}"/>
            <ContentPresenter Margin="2,0" Content="{Binding Title}"/>
        </StackPanel>
    </HierarchicalDataTemplate>
    

    另外在代码中进行了数据的绑定 todoTreeView.ItemsSource = root.Children; (root为Node的一个实例,Children为ObservableCollection<Node>类型属性)

    现在的问题是在AddTask_Click中如何获取的相对应Node实例. 方法是

    Node node = (sender as MenuItem).DataContext as Node;
    

    但是存在一个很大的问题,如果我的模板是这样的

    <HierarchicalDataTemplate x:Key="CheckBoxItemTemplate"
            ItemsSource="{Binding Children}">
        <StackPanel Orientation="Horizontal">
            <CheckBox VerticalAlignment="Center" Focusable="False"
                IsChecked="{Binding IsFinished}"/>
            <ContentPresenter Margin="2,0" Content="{Binding Title}">
                <ContentPresenter.ContextMeun>
                    <ContextMenu>
                        <MenuItem Header="添加子任务" Click="AddTask_Click"/>
                    </ContextMenu>
                </ContentPresenter.ContextMeun>
            </ContentPresenter>
        </StackPanel>
    </HierarchicalDataTemplate>
    

    就是把ContentMenu放到ContentPresenter中之后(sender as MenuItem).DataContext 是一个字符串,而且刚好是Title的内容.

    这个我暂时没有弄明白是为什么.

  • 相关阅读:
    前端脚手架的那些事儿
    CSS重置默认样式reset.css代码模板
    Web 3.0 前瞻:基于区块链的下一代浏览器
    关键词定位是网站推广的基础
    6年架构师针对web前端小白,作出的职业规划建议
    和程序员约会的优点和缺点
    如何在软件开发中避免出现漏洞
    Linux下修改时区
    前端需要掌握的Nginx知识
    Nginx入门指南
  • 原文地址:https://www.cnblogs.com/atskyline/p/2674139.html
Copyright © 2011-2022 走看看