私はリスト "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}" />
これを実行する最善の方法はありません。さて、実際にはありますが、システムそのものや現在の状況(深い知識だけでなく)についてのより多くのデータが必要です。さて、それを脇に置いてください。
あなたは次のことを行うことができ、バインディングを使用したい場合:
。ページ/ウィンドウ/ usercontrolで、オブジェクト(MyResult)を指すようにDataContextプロパティを設定します。
b。
<TreeView ItemsSource={Binding MyItems}>
....
</TreeView>
C:あなたのXAMLファイルの使用の際には、そのリストにツリービュー項目をバインドするスニペットを以下に示します。結果をお楽しみください。
考慮すべき点がいくつかあります。 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