0

WPF のデータベースから親とノードを取得するツリーを作成したいと考えています。私のデータベース構造は次のとおりです。 ここに画像の説明を入力

ここで、defectionID はノードの ID で、parentID は親の ID です。

4

1 に答える 1

0

次のようなエンティティで db テーブルをモデル化できます。

public class Deficiency
{
    public int DeficiencyID { get; set; }
    public int ParentID { get; set; }
    //... OTHER PROPERTIES ...//
}

次に、この回答を見てください。

編集:ツリービューを使用した XAML は次のようになります。

<!--Bind to Groups generated from codebehind 
    Every group have property Name and Items -->
<TreeView Name="treeview1" ItemsSource="{Binding Groups}" >
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Items}">
            <!-- Here Bind to the name of the group => this is the Parent ID -->
            <TextBlock Text="{Binding Path=Name}" />
            <HierarchicalDataTemplate.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                    <!-- Here the data context is your class Deficiency, 
                         so bind to its properties-->
                        <TextBlock Text="{Binding Path=DeficiencyID}"/>
                        <!-- ... -->
                        <TextBlock Text="{Binding Path=OtherProperties}"/>
                        <!-- ... -->
                    </StackPanel>
                </DataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

コードビハインドは次のようになります。

List<Deficiency> myList = new List<Deficiency>();
// here load from DB //       
ICollectionView view = CollectionViewSource.GetDefaultView(myList);
view.GroupDescriptions.Add(new PropertyGroupDescription("ParentID"));
treeview1.DataContext = view;

HTH

于 2012-11-23T11:07:13.700 に答える