none
WPF 关于通过DataSet绑定到TreeView的例子 RRS feed

  • 问题

  • 绑定后只有层级结构而节点的内容都是空的,请问是什么原因? 代码如下:

    relation 是DataSet中两表建立的关联,即DataRelation

    proType 为一级数据

    project_name为二级数据

    2016年6月21日 1:13

答案

  • 参考

    http://stackoverflow.com/questions/14011366/binding-treeview-to-dataset

      <TreeView Name="tv" ItemsSource="{Binding Root}">
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Parents}">
                    <TextBlock Text="{Binding Value}"/>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>

       DataSet ds = new DataSet("Data");

            DataTable t = new DataTable("Table");
            t.PrimaryKey = new DataColumn[] { t.Columns.Add("Key", typeof(int)) };
            t.Columns.Add("Value", typeof(string));
            t.Columns.Add("Father", typeof(int));
            ds.Tables.Add(t);

            ds.Relations.Add("Parents", t.Columns["Key"], t.Columns["Father"], false);

            t.Rows.Add(1, "First", -1);
            t.Rows.Add(2, "Second", -1);
            t.Rows.Add(3, "Third", 2);

            Root = new DataView(t);
            Root.RowFilter = "[Father]<0";
            t.DefaultView.RowFilter = "[Father] < 0";

            tv.DataContext = this;


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年6月21日 1:34

全部回复

  • 参考

    http://stackoverflow.com/questions/14011366/binding-treeview-to-dataset

      <TreeView Name="tv" ItemsSource="{Binding Root}">
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Parents}">
                    <TextBlock Text="{Binding Value}"/>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>

       DataSet ds = new DataSet("Data");

            DataTable t = new DataTable("Table");
            t.PrimaryKey = new DataColumn[] { t.Columns.Add("Key", typeof(int)) };
            t.Columns.Add("Value", typeof(string));
            t.Columns.Add("Father", typeof(int));
            ds.Tables.Add(t);

            ds.Relations.Add("Parents", t.Columns["Key"], t.Columns["Father"], false);

            t.Rows.Add(1, "First", -1);
            t.Rows.Add(2, "Second", -1);
            t.Rows.Add(3, "Third", 2);

            Root = new DataView(t);
            Root.RowFilter = "[Father]<0";
            t.DefaultView.RowFilter = "[Father] < 0";

            tv.DataContext = this;


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年6月21日 1:34
  • 你好, Shuanghua Li

         我已经看了参考文章,但是我不明白一张表建立DataRelation是什么意思,同时我还想知道  这种方式建立的关联以及XAML中有什么问题

    2016年6月21日 2:11
  • 我看上面的代码是两张表

    ds.Tables["FirstNode"]   ds.Tables["SecondNode"]


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年6月21日 2:49
  • 你好, Shuanghua Li

         对的,是两张表,两张表不能使用这种关联方式吗?

    2016年6月21日 3:08