2017-12-27 25 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を使用する前にアイテムコレクションを空にする必要があります」というエラーが表示されます。私はいくつかの記事を訪問したが、これの理由を見つけることができませんでした。

どうかこの問題を解決する方法を教えてください。

おかげで、

+0

は、ツリービューアイテムの内側にすべてのコードを取り除きます。 Parserはあなたの 'StackPanel'があなたのアイテムソースだと思っています。あなたが必要とするのは、そのコードを取得し、それを 'DataTemplate'に挿入し、それをあなたのTreeViewItemで参照することです。 – XAMlMAX

答えて

1

私が推測するには、以下が必要です。

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

これを試しました。チェックボックスは、ノードを展開したときにのみ表示されます。 「{バインディングスクリプト}」は表示されませんでした。 私は、 下記<ツリービューアイテムヘッダー= "TestedApps" のItemsSource = "{バインディングスクリプト}"> Prithiv

+0

こんにちは@ジョンのようなあなたの提案のための 感謝を使用していました。私は自分のコードを修正しました。今はうまく動作します。 – Prithiv

+0

@Prithivよろしくお願いします! – JohnyL

関連する問題