0

リスト「List MyItems」を含む MyResult オブジェクトがあります。

これを ac# WPF TreeView に追加したいと思います。

そうするための最良の方法は何ですか?

このためのステップバイステップのチュートリアルはありますか? 私はすべてのMVVMクラスなどと混同しているので.

ありがとう

4

3 に答える 3

1

物事を行う最善の方法はありません。実際にはありますが、最善の方法を知るには、システム自体と現在の状況 (および深い知識) に関するデータがもう少し必要です。まあ、それはさておき。

バインディングを使用する場合は、次のようにします。

を。ページ/ウィンドウ/ユーザー コントロールで、DataContext プロパティをオブジェクト (MyResult) を指すように設定します。

b. XAML ファイルで次のスニペットを使用して、treeView 項目をそのリストにバインドします。

  <TreeView ItemsSource={Binding MyItems}>
     ....
  </TreeView>

c. 結果をお楽しみください。

ただし、考慮すべき点がいくつかあります。 1. MyItems オブジェクトに DataTemplate を実装する必要があります。デフォルトの実装では、ToString() の結果を取得してツリー ビューに配置します。2. 階層データ (レベルを持つデータ) を使用する場合は、HierarchicalDataTemplate を実装し、ツリー内のすべてのノードの子を取得する場所を指定する必要があります。3. 正しいバインドのために ObservableCollection を使用することを検討する必要があります。この方法では、リスト内の項目を追加/削除するたびに UI の変更が呼び出されます。

開始するためのリンクがいくつかあります: firstsecondthird

于 2012-04-10T17:50:38.060 に答える
1

リスト内のオブジェクトには、ある種のリストがあると想定しています。その場合は、hierarchydatatemplateを使用して確認する必要があります。

簡単な例は次のようなものです。これは、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}" />
于 2012-04-10T17:48:43.067 に答える
1

使用できます

treeview.ItemsSource = MyList.

これは、 MVVMを使用してそれを行う方法のチュートリアルです。

于 2012-04-10T17:48:50.310 に答える