"List MyItems"목록이 포함 된 MyResult 개체가 있습니다.목록에 C# TreeView 추가
이 항목을 C# WPF TreeView에 추가하고 싶습니다.
이렇게하는 가장 좋은 방법은 무엇입니까?
여기에 대한 단계별 자습서가 있습니까? 나는 등 모든 MVVM 클래스와
감사
"List MyItems"목록이 포함 된 MyResult 개체가 있습니다.목록에 C# TreeView 추가
이 항목을 C# WPF TreeView에 추가하고 싶습니다.
이렇게하는 가장 좋은 방법은 무엇입니까?
여기에 대한 단계별 자습서가 있습니까? 나는 등 모든 MVVM 클래스와
감사
나는 당신의 목록에서 개체를 있으리라 믿고있어 혼란는군요 때문에 목록의 어떤 종류가있다. 이 경우 hierarchicaldatatemplate을 사용해보아야합니다.
간단한 예는 다음과 같을 수 있습니다. 이것은 radtreeview에서 사용한 세그먼트에서 왔지만 동일하게 작동합니다.
<!-- xaml -->
<UserControl.Resources>
<Style x:Key="_treeViewItemStyle" TargetType="telerik:RadTreeViewItem">
<Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource VisibilityConverter}}" />
<Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
<UI:HierarchicalDataTemplate x:Key="_treeViewTemplate"
ItemsSource="{Binding NodeItems}"
>
<TextBlock Margin="3,0,0,0" Text="{Binding Header}">
</TextBlock>
</UI:HierarchicalDataTemplate>
</UserControl.Resources>
<telerik:RadTreeView x:Name="_pageNavigator" ItemsSource="{Binding InspNavList}" ItemDoubleClick="SendFocusToPage" SelectedItem="{Binding SelectedNavItem, Mode=TwoWay}" ItemTemplate="{StaticResource _treeViewTemplate}" ItemContainerStyle="{StaticResource _treeViewItemStyle}" />
일을하는 가장 좋은 방법은 없습니다. 글쎄요, 사실은 있습니다 만, 시스템 자체와 현 상황 (깊이있는 지식뿐만 아니라)에 관한 좀 더 많은 데이터가 있어야 일을하는 가장 좋은 방법을 알 수 있습니다. 음, 그건 제쳐두고.
바인딩을 사용하려는 경우 다음을 수행 할 수 있습니다.
a. 귀하의 페이지/창/usercontrol 귀하의 개체 (MyResult) 가리 키도록 DataContext 속성을 설정합니다.
b. XAML 파일에서 다음 스 니펫을 사용하여 treeView 항목을 해당 목록에 바인딩합니다.
<TreeView ItemsSource={Binding MyItems}>
....
</TreeView>
c. 결과를 즐기십시오.
고려해야 할 몇 가지 사항이 있습니다. 1. MyItems 개체에 대해 DataTemplate을 구현해야합니다. 기본 구현은 트리보기에 넣기 위해 ToString() 결과를 취합니다. 2. 계층 적 데이터 (계층이있는 데이터를 의미)를 사용하려면 HierarchicalDataTemplate을 구현하고 트리의 모든 노드에 대해 자식을 가져올 위치를 가리켜 야합니다. 3. 올바른 바인딩을 위해 ObservableCollection 사용을 고려해야합니다. 목록의 항목을 추가/삭제할 때마다 UI에서 변경 사항이 호출됩니다.
이 파일은 다음에서부터 시작하는 것이 좋습니다. http://stackoverflow.com/questions/6415037/populate-treeview-from-list-of-file-paths-in-wpf – Stef
+1이 방법이 효과적입니다. 감사. – Stef