wuyong

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

    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  吴勇  阅读(964)  评论(0编辑  收藏  举报