WPF datagrid 列按钮使用

 

原文:WPF中使用DataGrid时操作列按钮问题

 

 

     <DataGrid x:Name= "datagrid"  AutoGenerateColumns= "False"  ScrollViewer.HorizontalScrollBarVisibility= "Hidden"  SizeChanged= "datagrid_SizeChanged"  RowHeaderWidth= "0"  IsReadOnly= "True"  BorderBrush= "Transparent"  BorderThickness= "1" >
         <DataGrid.ColumnHeaderStyle>
             <Style TargetType= "DataGridColumnHeader" >
                 <Setter Property= "HorizontalContentAlignment"  Value= "Center" ></Setter>
                 <Setter Property= "FontSize"  Value= "20" ></Setter>
                 <Setter Property= "FontWeight"  Value= "ExtraBold" ></Setter>
                 <Setter Property= "Height"  Value= "50" ></Setter>
             </Style>
         </DataGrid.ColumnHeaderStyle>
 
         <DataGrid.Columns>
             <DataGridTextColumn x:Name= "UserName"  Binding= "{Binding Name}"  Header= "姓名"  FontSize= "20" />
             <DataGridTextColumn x:Name= "UserSex"  Binding= "{Binding Sex}"  Header= "性别"  FontSize= "20" />
             <DataGridTextColumn x:Name= "UserAge"  Binding= "{Binding Age}"  Header= "是否完成"  FontSize= "20" />
             <DataGridTextColumn x:Name= "UserPhone"  Binding= "{Binding Phone}"  Header= "下发时间"  FontSize= "20" />
             <DataGridTemplateColumn x:Name= "UserAction"  Header= "操作"  Width= "100" >
                 <DataGridTemplateColumn.CellTemplate>
                     <DataTemplate>
                         <StackPanel Orientation= "Horizontal" >
                             <Button x:Name= "BtnAction"  Content= "{Binding BtnActionStr}"  Height= "34"
                                     Width= "80"  Click= "BtnAction_Click"  IsEnabled= "{Binding Enabled}"
                                     FontSize= "20"   HorizontalContentAlignment= "Center"  VerticalContentAlignment= "Center" >
                             </Button>
                             <Button x:Name= "BtnAction1"  Content= "{Binding BtnActionStr1}"  Height= "34"
                                     Width= "80"  Click= "BtnAction1_Click"  IsEnabled= "{Binding Enabled1}"
                                     FontSize= "20"   HorizontalContentAlignment= "Center"  VerticalContentAlignment= "Center" >
                             </Button>
                         </StackPanel>
                     </DataTemplate>
                 </DataGridTemplateColumn.CellTemplate>
             </DataGridTemplateColumn>
         </DataGrid.Columns>
     </DataGrid>
 
 
后台代码
 
List<User> users =  new  List<User>();
//向DataGrid中添加数据
private  void  GetDataGrid()
{
     for  ( int  i = 0; i < 10; i++)
     {
         User user =  new  User();
         user.Name =  "Tom" ; user.Sex =  "男" ; user.Age =  "18" ; user.Phone =  "000000" ;
         user.BtnActionStr =  "按钮"  + i;
         user.BtnActionStr1 =  "按钮"  + (i + 1);
         if  (i % 2 == 0)
         {
             user.Enabled =  true ;
             user.Enabled1 =  false ;
         }
         else
         {
             user.Enabled =  false ;
             user.Enabled1 =  true ;
         }
         users.Add(user);
     }
     //数据绑定
     datagrid.ItemsSource = users;
}
//定义要绑定的类
private  class  User
{
     public  string  Name {  get set ; }
     public  string  Sex {  get set ; }
     public  string  Age {  get set ; }
     public  string  Phone {  get set ; }
     public  string  BtnActionStr {  get set ; }
     public  bool  Enabled {  get set ; }
     public  string  BtnActionStr1 {  get set ; }
     public  bool  Enabled1 {  get set ; }
}
//平均分配各列的宽度
private  void  datagrid_SizeChanged( object  sender, SizeChangedEventArgs e)
{
     int  WidthSize = ( int )(datagrid.ActualWidth / 5 - 4);
     UserName.Width = WidthSize; UserSex.Width = WidthSize; UserAge.Width = WidthSize;
     UserPhone.Width = WidthSize; UserAction.Width = WidthSize;
}
//第一个按钮点击事件
private  void  BtnAction_Click( object  sender, RoutedEventArgs e)
{
     MessageBox.Show(users[datagrid.SelectedIndex].Name);
}
//第二个按钮点击事件
private  void  BtnAction1_Click( object  sender, RoutedEventArgs e)
{
     MessageBox.Show(users[datagrid.SelectedIndex].Sex);
}
 

 调用:

1
GetDataGrid();

 效果图:

勿忘初心,方得始终。

转载于:https://www.cnblogs.com/rh-fernando/p/11356990.html

  • 0
    点赞
  • 4
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值