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 >
< 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();
}
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;
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);
}
{
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);
}