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의 내용입니다.
이것은 내가 잠시 왜 그런지 이해하지 못했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WPF의 데이터 컨텍스트 및 자동 연결 소개 - iFour Technolab데이터 소스를 지정하는 몇 가지 방법이 있습니다. 바인딩에 Source 속성을 사용하고 DataContext를 상속할 수 있으며 ElementName 및 RelativeSource 속성도 개체 바인딩에 사용됩니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.