ContextMeunItem에 해당하는 논리 레이어 객체 가져오기

3562 단어 context
당분간 모든 물구나무를 똑똑히 하지 못했다.문제의 관건을 간단히 묘사해 보시오.
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은 Observable Collection 유형 속성)
지금 문제는 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>

바로 Content Menu를 Content Presenter에 넣은 후(sender as MenuItem)입니다.DataContext는 문자열이며 Title의 내용입니다.
이것은 내가 잠시 왜 그런지 이해하지 못했다.

좋은 웹페이지 즐겨찾기