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;
        }


    }
}

转载于:https://www.cnblogs.com/xiepengtest/p/4068318.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值