
将AutoGenerateColumns设置为false。然后在代码中手动生成不同表相对应的百分比列宽的与数据库表的列名对应的列。其余部分不变即可。
代码:
string attr = "";
dataDataGridAutoGenerateColumns = false;
MultiSecurity ms = new MultiSecurity();
OracleConnection oraCon = msCreateConnection("msdb", "maple", "manager");
foreach (string att in msgetAttributes(tablename, oraCon)) //获取指定表的所有列
{
attr += att + ",";
dataDataGridColumnsAdd(new DataGridTextColumn() { Header = att, Binding = new Binding(att), Width = new DataGridLength(2, DataGridLengthUnitTypeStar) }); //为DataGrid生成百分比列宽的列,相当于xaml中设置Width = "2"
}
attr = attrSubstring(0, attrLength - 1);
sql = "select "+attr+" from " + nodeName; //生成查询指定列的sql语句
DataTable dt = msgetData(sql, oraCon);
dataDataGridItemsSource = dtDefaultView; //将结果集绑定到DataGrid
private void fill_Datagrid(string sql)
{
cmd = new SqlCommand(sql, conngetConn());
sda = new SqlDataAdapter();
sdaSelectCommand = cmd;
ds = new DataSet();
sdaFill(ds);
dataGridView1DataSource = dsTables[0];
dataGridView1Columns[0]Visible = false;
}
其中sql=“select 字段 from a,b,c where 字段 =?”;
sql是在数据库中查询语句。
参考下这篇经验WPF之DataGrid篇:[3]DataGridComboBoxColumn
地址:>
WPF 下的Children 等效于 winform 下的Controls
foreach (UIElement element in UniformGridChildren)
{
}
用mvvm模式,在逻辑代码层中根本就不需要知道前台有什么元素。推荐看一下mvvm,会少走很多弯路。
MVVM是Model-View-ViewModel的简写。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
在DataGridView设置数据源绑定后,
设置DataGridView的属性HeaderText就可以了。
代码参考:
dataGridViewColumns[filedName]HeaderText
=
displayLabel
别的地方找的答案,不知道问的是不是这个,呵呵,另外双手奉上阿里云服务器券:网页链接
以上就是关于WPF的DataGrid自动绑定数据库时最后的空列到底要怎么消除全部的内容,包括:WPF的DataGrid自动绑定数据库时最后的空列到底要怎么消除、wpf datagrid绑定了数据 如果选中多行中怎么获取选中行的某列的值、【WPF】怎样获取DataGrid模板列ComboBox选择的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)