wpf treeView与数据库的绑定

目前这个方法我还不是很了解.只有两层,没有更多层的测试.这个搞了很久,因为我不懂,没继承application这个类.

有一个问题困扰着我,在模板中,是否可以用命令绑定.   xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

如果可以,还请告知.--------------请您高抬贵手在下方留言.

 

  <!--<i:Interaction.Triggers >
                              <i:EventTrigger EventName="MouseRightButtonUP" >--><!--DataContext="{Binding Main,Source=                                                        {StaticResource Locator}}"--><!--
                                <i:InvokeCommandAction Command="{Binding TxtBoxCommand,RelativeSource={RelativeSource                                                         AncestorType=local:getDataSet}}" CommandParameter="{Binding ElementName=tbk}"/>
                              </i:EventTrigger> 
                         </i:Interaction.Triggers>-->

 

    <TreeView x:Name="treeView" Margin="4,0,5,28" Grid.RowSpan="3">
            <!--<TreeView.ContextMenu>
                    <ContextMenu>
                        <MenuItem Name="Copy" Header="复制标题"/>
                        <MenuItem Name="Stick" Header="粘贴"/>
                        <Separator />
                        <MenuItem Name="AddRoot" Header="添加根目录"/>
                        <MenuItem Name="AddItem" Header="添加子目录"/>
                        <MenuItem Name="Delete" Header="删除当前项"/>

                    </ContextMenu>
                </TreeView.ContextMenu>-->
            <TreeView.ItemTemplate >
                <HierarchicalDataTemplate ItemsSource="{Binding xx}">
                    <TextBlock Name="tbk" Text="{Binding 部门}" MinWidth="60" MouseDown="tbk_MouseLeftButtonUp">
                       
                         <!-- 这里命令绑定不会成功  <i:Interaction.Triggers >
                      
                              <i:EventTrigger EventName="MouseRightButtonUP" >--><!--DataContext="{Binding Main,Source={StaticResource Locator}}"--><!--
                                <i:InvokeCommandAction Command="{Binding TxtBoxComm,RelativeSource={RelativeSource AncestorType=local:getDataSet}}" CommandParameter="{Binding ElementName=tbk}"/>
                              </i:EventTrigger> 
                         </i:Interaction.Triggers>-->

                    </TextBlock>
                    <HierarchicalDataTemplate.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Name="tbk" Text="{Binding 部门}" MinWidth="60" MouseDown="tbk_MouseLeftButtonUp">

                            </TextBlock>
                        </DataTemplate>

                    </HierarchicalDataTemplate.ItemTemplate>
                </HierarchicalDataTemplate>

            </TreeView.ItemTemplate>
        </TreeView>

后台:

 public  class getDataSet:Application
    {

 public static  DataSet BindingData(SqlConnection conn)
        {
            SqlCommand cmd = new SqlCommand("SELECT douID,部门  FROM dbo.Table_bumen2;", conn);//table_bumen2是主表,主键被引用
            // cmd.CommandType =System.Data.CommandType.StoredProcedure;
          //  cmd.CommandType = CommandType.Text;
            using (SqlDataAdapter da = new SqlDataAdapter(cmd))
            {
                da.SelectCommand = cmd;
                DataSet ds = new DataSet();
                da.Fill(ds, "rr");//rr 就是主表里的douID,和部门 两个列       其实是treeView的rootNode(根节点)
                cmd.CommandText = "SELECT 部门,douID FROM dbo.Table_bumen";//拥有外键,这个是子表
                SqlDataAdapter da2 = new SqlDataAdapter(cmd);
                da2.Fill(ds, "cc");//cc而这个是子表里的两列,    其中部门那一列     其实是treeView的childNode(子节点)      
                DataRelation dr = new DataRelation("xx", ds.Tables["rr"].Columns["douID"], ds.Tables["cc"].Columns["douID"], true);
                ds.Relations.Add(dr);
                return ds;
            }
          
        }

  public MainWindow()
        {
            InitializeComponent();

 DataSet ds = getDataSet.BindingData(conn);

 treeView.ItemsSource = ds.Tables["rr"].DefaultView;
        }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值