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(); |
效果图:
WPF datagrid 列按钮使用的更多相关文章
- 编写 WPF DataGrid 列模板,实现更好的用户体验
Julie Lerman 下载代码示例 最近我在为一个客户做一些 Windows Presentation Foundation (WPF) 方面的工作. 虽然我提倡使用第三方工具,但有时也会避免使用 ...
- WPF DataGrid 列宽填充表格方法
WPF中使DataGrid 列宽填充表格方法,设置ColumnWidth属性为ColumnWidth="*"即可. 源码: <DataGrid AutoGenerateCol ...
- WPF DataGrid列设置为TextBox控件的相关绑定
在wpf的DataGrid控件中,某一列的数据模板为TextBox控件的话,绑定Text="{Binding TxtSn, UpdateSourceTrigger=PropertyChang ...
- wpf datagrid 中按钮 动态显示
/若datagrid出现滚动条可能会出现问题需要加上下面俩句话.//因为出滚动条时,为了显示加速,datagrid会加载一部分数据.另一些数据当滚动时在加载进去 这样初始化获取不到这些数据.//在da ...
- WPF DataGrid 列显示0,-1(作废、删除)状态,1,2(支出、收入)类型,操作人(在其他表中),如何转换格式。
操作人,左联,Join on letf //容我补充 状态,类型,类似的转换,在xmlns中引入common xmlns:com="clr-namespace:XXX.Common&qu ...
- WPF DataGrid控件中某一列根据另一个文本列的值显示相应的模板控件
之前做项目的时候需要实现这样一个功能.WPF DataGrid有两列,一列为"更新状态”列,一列为"值"列,如果"更新状态"列的值为“固定值更新”,则 ...
- WPF DataGrid某列使用多绑定后该列排序失效,列上加入 SortMemberPath 设置即可.
WPF DataGrid某列使用多绑定后该列排序失效 2011-07-14 10:59hdongq | 浏览 1031 次 悬赏:20 在wpf的datagrid中某一列使用了多绑定,但是该列排序失 ...
- WPF DataGrid绑定一个组合列
WPF DataGrid绑定一个组合列 前台: <Page.Resources> <local:InfoConverter x:Key="converter& ...
- WPF DataGrid添加编号列
WPF DataGrid添加编号列? 第一步:<DataGridTemplateColumn Header="编号" Width="50" MinWidt ...
随机推荐
- C# ThreadPool 线程池
Thread与ThreadPool Thread: .NetFramework1.0 对线程对象的一个封装 Thread方法很多很强大,但是太过强大,而且没有限制 功能繁多,反而用不好--就像给4岁 ...
- 学习 C#,从 Hello world 开始吧
目录 Hello world 创建.编辑.编译和运行 C# 源代码 使用 .NET Core 命令行接口 (CLI) 工具 使用 Visual Studio 创建项目 编译和执行 总结 C#(读作 & ...
- CefSharp 无法输入中文的问题
在CefSharp75版本,使用了WpfImeKeyboardHandler支持后,无法支持搜狗中文输入法 其中的一个修复方案: 在ChrominumWebBrowser中,添加焦点事件的重写,对In ...
- Spring基础——AOP通知
spring(AOP通知) 切面 切面是封装通用业务逻辑的组件,可以作用到其他组件上.是spring组件中的某个方法.无返回类型.参数类型与通知类型有关.一个切面 开启数据库 关闭数据库 开启事务 检 ...
- node-sass 埋坑记录
node-sass 埋坑记录 背景 原有项目.环境: node:v8.16.2 npm:v6.4.1 node-sass::v4.8.0 Angular-CLI:v6.x 本机没有安装 Visual ...
- CSS入门(定位的简单总结)
一.定位 普通流定位 浮动定位 相对定位 绝对定位 固定定位 二.position定位 1.static(默认值) 2.relative 相对定位 3.absolute 绝对定位 4.fixed 固定 ...
- NuGet修改默认包保存的位置
NuGet默认的全局包下载地址一般为:C:\Users\{username}\.nuget\packages 修改方法: <?xml version="1.0" encodi ...
- 微信小程序连接低功率蓝牙控制单片机上硬件设备
1.软件部分介绍 微信小程序是一种新的应用,用户不需要下载应用只用通过扫二维码或者打开链接就能使用,使用完后不需要卸载,直接关闭就行了.微信在2017年初推出微信小程序开发环境.任何企业,媒体,个人都 ...
- Android app targetSdk升级到27碰到的一个bug补充说明
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/203 完美解决google nexus设备全面屏主题cra ...
- OS X 下 OpenGL 4.x 环境配置
配置: OS X 10.10 + CMake 3.2.2 + GLFW 3.1.1 + OpenGL 4.1 + Xcode 6.0 本文主要介绍如何在 OS X 系统下进行环境配置,使得 Xcode ...