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