wpf数据显示控件
wpf數據顯示控件
????????<Grid.ColumnDefinitions>
????????????<ColumnDefinition?Width="50"?></ColumnDefinition>
????????????<ColumnDefinition></ColumnDefinition>
????????????<ColumnDefinition?Width="50"?></ColumnDefinition>
????????</Grid.ColumnDefinitions>
????????<Grid.RowDefinitions>
????????????<RowDefinition?Height="20"></RowDefinition>
????????????<RowDefinition></RowDefinition>
????????????<RowDefinition?Height="20"></RowDefinition>
????????</Grid.RowDefinitions>
????????<ListView?Grid.Column="1"??Grid.Row="1"??Margin="31,47,34,28"?Name="listView1"?>
????????????<ListView.View>
????????????????<GridView?ColumnHeaderToolTip="Service">
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SvcId}"?Header="SvcId"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SvcNameResId}"?Header="SvcNameResId"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SvcType}"?Header="SvcType"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=CarrierSvcCode}"?Header="CarrierSvcCode"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SpId}"?Header="SpId"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=UserType}"?Header="UserType"></GridViewColumn>
????????????????</GridView>
????????????</ListView.View>
????????</ListView>
????</Grid>
????????private?void?BindData()
????????{
????????????SqlConnection?conn?=?new?SqlConnection();
????????????conn.ConnectionString?=?@"server=192.168.110.210\Global01;database=IICHADB;uid=sa;pwd=Password01!";
????????????conn.Open();
????????????SqlCommand?cmd?=?conn.CreateCommand();
????????????cmd.CommandText?=?"select?*?from?dbo.CFG_Service?with(nolock)";
????????????SqlDataAdapter?sda?=?new?SqlDataAdapter(cmd);
????????????DataTable?dt?=?new?DataTable();
????????????sda.Fill(dt);
????????????listView1.ItemsSource?=?dt.DefaultView;
????????????conn.Dispose();
????????}
????????????foreach?(DataColumn?col?in?dt.Columns)
????????????{
????????????????GridViewColumn?gvc?=?new?GridViewColumn();
????????????????gvc.Header?=?col.ColumnName;
????????????????Binding?bing?=?new?Binding();
????????????????bing.Path?=?new?PropertyPath(col.ColumnName);
????????????????gvc.DisplayMemberBinding?=?bing;
????????????????gv.Columns.Add(gvc);
????????????}
????????????listView1.View?=?gv;
????????????listView1.ItemsSource?=?dt.DefaultView;
????????????{
????????????????GridViewColumn?gvc?=?new?GridViewColumn();
????????????????gvc.Header?=?col.ColumnName;
????????????????Binding?bing?=?new?Binding();??
????????????????bing.Path?=?new?PropertyPath(col.ColumnName);
????????????????DataTemplate?template?=?new?DataTemplate();?
??????????????
????????????????FrameworkElementFactory?factory?=?new?FrameworkElementFactory(typeof(TextBox));
????????????????factory.SetBinding(TextBox.TextProperty,?bing);
????????????????factory.SetValue(TextBox.ForegroundProperty,?Brushes.Pink);
????????????????template.VisualTree?=?factory;
????????????????gvc.CellTemplate?=?template;
????????????????gv.Columns.Add(gvc);
????????????}
? wpf中的數據顯示主要用listView來顯示
???標準代碼:
代碼 ????<Grid?Height="319"?Width="571">????????<Grid.ColumnDefinitions>
????????????<ColumnDefinition?Width="50"?></ColumnDefinition>
????????????<ColumnDefinition></ColumnDefinition>
????????????<ColumnDefinition?Width="50"?></ColumnDefinition>
????????</Grid.ColumnDefinitions>
????????<Grid.RowDefinitions>
????????????<RowDefinition?Height="20"></RowDefinition>
????????????<RowDefinition></RowDefinition>
????????????<RowDefinition?Height="20"></RowDefinition>
????????</Grid.RowDefinitions>
????????<ListView?Grid.Column="1"??Grid.Row="1"??Margin="31,47,34,28"?Name="listView1"?>
????????????<ListView.View>
????????????????<GridView?ColumnHeaderToolTip="Service">
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SvcId}"?Header="SvcId"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SvcNameResId}"?Header="SvcNameResId"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SvcType}"?Header="SvcType"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=CarrierSvcCode}"?Header="CarrierSvcCode"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=SpId}"?Header="SpId"></GridViewColumn>
????????????????????<GridViewColumn?DisplayMemberBinding="{Binding?Path=UserType}"?Header="UserType"></GridViewColumn>
????????????????</GridView>
????????????</ListView.View>
????????</ListView>
????</Grid>
?
?
?
代碼 代碼?????????private?void?BindData()
????????{
????????????SqlConnection?conn?=?new?SqlConnection();
????????????conn.ConnectionString?=?@"server=192.168.110.210\Global01;database=IICHADB;uid=sa;pwd=Password01!";
????????????conn.Open();
????????????SqlCommand?cmd?=?conn.CreateCommand();
????????????cmd.CommandText?=?"select?*?from?dbo.CFG_Service?with(nolock)";
????????????SqlDataAdapter?sda?=?new?SqlDataAdapter(cmd);
????????????DataTable?dt?=?new?DataTable();
????????????sda.Fill(dt);
????????????listView1.ItemsSource?=?dt.DefaultView;
????????????conn.Dispose();
????????}
?
?
遇到的問題:能否在代碼中地址列內容而通過反射動態綁定
?
代碼 ????????????GridView?gv?=?new?GridView();????????????foreach?(DataColumn?col?in?dt.Columns)
????????????{
????????????????GridViewColumn?gvc?=?new?GridViewColumn();
????????????????gvc.Header?=?col.ColumnName;
????????????????Binding?bing?=?new?Binding();
????????????????bing.Path?=?new?PropertyPath(col.ColumnName);
????????????????gvc.DisplayMemberBinding?=?bing;
????????????????gv.Columns.Add(gvc);
????????????}
????????????listView1.View?=?gv;
????????????listView1.ItemsSource?=?dt.DefaultView;
?
?
在列中綁定checkbox等控件
?
代碼 ???????????foreach?(DataColumn?col?in?dt.Columns)????????????{
????????????????GridViewColumn?gvc?=?new?GridViewColumn();
????????????????gvc.Header?=?col.ColumnName;
????????????????Binding?bing?=?new?Binding();??
????????????????bing.Path?=?new?PropertyPath(col.ColumnName);
????????????????DataTemplate?template?=?new?DataTemplate();?
??????????????
????????????????FrameworkElementFactory?factory?=?new?FrameworkElementFactory(typeof(TextBox));
????????????????factory.SetBinding(TextBox.TextProperty,?bing);
????????????????factory.SetValue(TextBox.ForegroundProperty,?Brushes.Pink);
????????????????template.VisualTree?=?factory;
????????????????gvc.CellTemplate?=?template;
????????????????gv.Columns.Add(gvc);
????????????}
?
?
posted on 2009-12-05 14:32 吳勇 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/wuyong/archive/2009/12/05/1617543.html
總結
- 上一篇: [转]AS3 与 其他语言 的一些不同点
- 下一篇: (转)软件开发人员如何提高自己的软件专业