D22_04_将DataSet对象绑定到TreeView

image

 

<Window x:Class="demo.BoundTreeViewDataSet"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="BoundTreeView" Height="300" Width="300"
    >
    <Grid>
        <!--将dataset:ds.Tables["Categories"].DefaultView绑定到TreeView-->
      <TreeView Name="treeCategories" Margin="5">
        <TreeView.ItemTemplate>
                <!-- CategoryProduct为关联关系DataRelation:"CategoryProduct"-->
          <HierarchicalDataTemplate ItemsSource="{Binding CategoryProduct}">
            <TextBlock Text="{Binding CategoryName}" Padding="2" />
            <HierarchicalDataTemplate.ItemTemplate>
              <DataTemplate>
                <TextBlock Text="{Binding ModelName}" Padding="2" />
              </DataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
          </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
      </TreeView>
    </Grid>
</Window>

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data;

namespace demo
{
    /// <summary>
    /// Interaction logic for BoundTreeView.xaml
    /// </summary>

    public partial class BoundTreeViewDataSet
    {

        public BoundTreeViewDataSet()
        {
            InitializeComponent();

            DataSet ds = App.StoreDbDataSet.GetCategoriesAndProducts();

            treeCategories.ItemsSource = ds.Tables["Categories"].DefaultView;
        }

    }
}

StoreDatabase.StoreDbDataSet

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace StoreDatabase
{
    public class StoreDbDataSet
    {
        private string connectionString = StoreDatabase.Properties.Settings.Default.Store;

        public DataTable GetProducts()
        {            
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("GetProducts", con);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

            DataSet ds = new DataSet();
            adapter.Fill(ds, "Products");
            return ds.Tables[0];
        }

        public DataSet GetCategoriesAndProducts()
        {
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand("GetProducts", con);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

            DataSet ds = new DataSet();
            adapter.Fill(ds, "Products");
            cmd.CommandText = "GetCategories";
            adapter.Fill(ds, "Categories");

            // Set up a relation between these tables (optional).
            DataRelation relCategoryProduct = new DataRelation("CategoryProduct",
              ds.Tables["Categories"].Columns["CategoryID"],
              ds.Tables["Products"].Columns["CategoryID"]);
            ds.Relations.Add(relCategoryProduct);

            return ds;
        }


    }
}
posted @ 2014-11-02 04:17  xiepengtest  阅读(440)  评论(0编辑  收藏  举报