2011-01-31 4 views
0

그래서 나는 데이터 바인딩에 이상한 문제가 있습니다. Treeview에 List를 데이터 바인딩하려고 시도하고 있는데 어떤 이유로 바인딩의 일부로 생성 된 항목을 선택할 수 있습니다.WPF 데이터 바인딩 Treeview 이상한 목록에

바인딩 출처 : 뒤에

<TreeView Name="paramTree" 
      BorderBrush="DarkSlateGray" 
      Margin="0,0,0,1"> 
    <TreeViewItem Name="systemNode" 
        Header="System Info" 
        ItemsSource="{Binding}"> 
     <TreeViewItem.ItemTemplate> 
      <DataTemplate> 
       <TreeViewItem Header="{Binding}"/> 
      </DataTemplate> 
     </TreeViewItem.ItemTemplate> 
    </TreeViewItem> 
</TreeView> 

코드 :이 System.Environment의 모든 속성과 함께 "시스템 정보"노드의 서브 트리를 만들어

private PropertyList sysList = new PropertyList(typeof(System.Environment)); 

public MainWindow() 
{ 
    InitializeComponent(); 
    . 
    . 
    systemNode.DataContext = sysList; 
} 

class PropertyList : List<string> 
{ 
    public PropertyList(Type t) 
    { 
     // Get properties of this type 
     PropertyInfo[] propertyInfo = t.GetProperties(); 

     foreach (PropertyInfo property in propertyInfo) 
     { 
      Add(property.Name); 
     } 
    } 
} 

하지만 내가 할 수있는 ' 새로운 TreeViewItems 중 하나를 클릭하십시오 ... 도움이 필요하십니까? 내가 틀렸다면

답변

2

나는 그것이 오래된 문제입니다 가정 만이보고에서,

트 리뷰는 자동으로 항목 주위에 TreeViewItem을 생성합니다 ... 저를 수정합니다. 귀하의 ItemTemplate은 다음과 같아야합니다.

<TreeViewItem.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}"/> 
     </DataTemplate> 
    </TreeViewItem.ItemTemplate> 
+0

Doh, 지금은 바보 같아요. 감사! – FlyingStreudel

+0

우리 중 최고 일이 있습니다 :) –

관련 문제