2017-12-27 226 views
0

TreeViewAdv에 대한 데이터 소스를 설정하고 트리보기 항목에 컨텍스트 메뉴와 체크 상자를 사용하려고했습니다."itemssource를 사용하기 전에 항목 컬렉션이 비어 있어야합니다."라는 오류를 해결하는 방법은 무엇입니까?

<TreeView> 
    <TreeViewItem Header="TestedApps" 
     ItemsSource="{Binding Scripts}"> 
     <StackPanel Orientation="Horizontal"> 
      <StackPanel.ContextMenu> 
       <ContextMenu> 
        <MenuItem Header="Play" Click="Play"/> 
       </ContextMenu> 
      </StackPanel.ContextMenu> 
      <CheckBox Margin="0" VerticalAlignment="Center" IsChecked="{Binding IsEnabled, Mode=TwoWay}"/> 
      <Rectangle Margin="5 0" Width="12" Height="12" Fill="{Binding Result, Converter={StaticResource ResultConverter}}"/> 
      <TextBlock Margin="2 0" Text="{Binding Name}" VerticalAlignment="Center"/> 
     </StackPanel> 
    </TreeViewItem> 
</TreeView> 

하지만 "itemsSource를 사용하기 전에 항목 컬렉션이 비어 있어야합니다."라는 오류 메시지가 표시됩니다. 나는 몇몇 기사를 방문했으나 이것에 대한 이유를 찾을 수 없었다.

누구든지이 문제를 해결하는 방법을 알려주십시오.

<TreeView> 
    <TreeView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       .... 
      </StackPanel> 
     </DataTemplate> 
    </TreeView.ItemTemplate>  
</TreeView> 
+0

은 treeviewitem의 내부에 모든 코드를 제거하십시오 :

덕분에, 내 생각 – XAMlMAX

답변

1

다음이 필요합니다. Parser는`StackPanel '이 아이템 소스라고 생각합니다. 필요한 것은 그 코드를 가져 와서`DataTemplate`에 삽입 한 다음 TreeViewItem에서 참조하는 것입니다.
+0

나는 이것을 시도했다. 하지만 노드를 확장 할 때만 확인란을 보여줍니다. "{Binding Scripts}"가 표시되지 않았습니다. 내가처럼 사용했다 아래 Prithiv

+0

안녕 @ 존, 귀하의 제안에 대한 감사합니다. 나는 내 코드를 수정했다. 이제는 잘 작동합니다. – Prithiv

+0

@Prithiv 당신을 환영합니다! – JohnyL