棒棒牛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1317|回复: 6

[解决] 关于datagrid 的问题 [复制链接]

V1

Rank: 1

游币
100
金币
75
经验
36
积分
46
帖子
13
发表于 2010-5-26 15:22:43 |显示全部楼层
以下为采用枚举类给datagrid指定数据内容的 后台代码:(直接采用dataset 也可以为datagrid指定数据内容的)
  ObservableCollection<Member> memberData = new ObservableCollection<Member>(); 
            DataSet ds = DbHelperOleDb.Query("Select Dname as 部门名称 from Tdepartments");
            if (ds.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {
                    memberData.Add(new Member()
                    {
                        Name = ds.Tables[0].Rows[i]["部门名称"].ToString()
                    }); 
               
                }


                dataGrid1.DataContext = memberData;              
            }


前台:


<DataGrid   AutoGenerateColumns="True" ItemsSource="{Binding}"   Height="418" HorizontalAlignment="Left" Margin="18,0,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="316">
          <DataGrid.Columns>
                <DataGridTextColumn Header="" HeaderStringFormat="Name"  Binding="{Binding Name, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="380" />
            </DataGrid.Columns>
           
        </DataGrid>


要求实现  修改完了  表格单元格 自动修改数据库,为何上面的程序只能够实现  读取,无法双向更新呢??
看看再说吧

版主

WPF_1.5_ray

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

游币
259
金币
586
经验
1690
积分
2179
帖子
429

2011 年度优秀版主 2010 年度优秀版主

发表于 2010-5-26 20:19:20 |显示全部楼层
因为你修改的数据是你自己的一个集合
What is real?

V1

Rank: 1

游币
100
金币
75
经验
36
积分
46
帖子
13
发表于 2010-5-27 10:46:44 |显示全部楼层
也就是我需要在changed事件中自己写入库的代码 是这样吗?
看看再说吧

版主

WPF_1.5_ray

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

游币
259
金币
586
经验
1690
积分
2179
帖子
429

2011 年度优秀版主 2010 年度优秀版主

发表于 2010-5-27 11:03:51 |显示全部楼层
为什么不直接使用DataTable来作为绑定的数据源呢?
DataSet ds = DbHelperOleDb.Query("Select Dname as 部门名称 from Tdepartments");
dataGrid1.ItemsSource= CollectionViewSource.GetDefaultView(ds.Tables[0]);
或者         
dataGrid1.ItemsSource= ds.Tables[0].DefaultView;
What is real?

V1

Rank: 1

游币
100
金币
75
经验
36
积分
46
帖子
13
发表于 2010-5-27 11:14:45 |显示全部楼层
你说的也有道理,我想实现的是 不管在datagird里面新加 还是 修改  数据库自动跟着改变了 不想用那么多按钮,您上面说的方法可以实现吗?
看看再说吧

版主

WPF_1.5_ray

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

游币
259
金币
586
经验
1690
积分
2179
帖子
429

2011 年度优秀版主 2010 年度优秀版主

发表于 2010-5-27 11:53:34 |显示全部楼层
上面的方式修改的是DataSet中的某张DataTable,这个是同步的。
你要同时数据库跟着变,那肯定得你自己去Commit。
但是在修改的时候就commit,这个性能你考虑过能行么
What is real?

V1

Rank: 1

游币
100
金币
75
经验
36
积分
46
帖子
13
发表于 2010-5-27 15:03:50 |显示全部楼层
我根据你们的说法还是从ui取值  然后修改数据库了
看看再说吧
您需要登录后才可以回帖 登录 | 注册

bbniu.com (湘ICP备06008909号)  

GMT+8, 2012-5-22 21:16

Copyright © 2009-2011 bbniu.com. All Rights Reserved.

回顶部