2021-05-08

MVVM模式下的DataGridCheckBoxColumn
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:vs· wpf
撰写时间:2021/5/8
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面记录一下wpf在数据网格里面加上一列复选框并如何去使用它
首先DataGrid里面绑定的是数据库里面的数据,我数据库里面是没有复选框那一列的字段的
然后先要做的是先添加一个Vo 绑定表 然后再添加INotifyPropertyChanged
INotifyPropertyChanged的作用是 你属性改变了它是会实时通知到你的
public class RoleTypeVo:S_RoleType, INotifyPropertyChanged
{
private bool? _RTchked { get; set; }
public bool? RTchked
{
get
{
return _RTchked;
}
set
{
_RTchked = value;
if (PropertyChanged != null)//有改变
{
PropertyChanged(this, new PropertyChangedEventArgs(“RTchked”));//对Quantity进行监听
}
}
}
//INotifyPropertyChanged报错点显示可能修补程序一直点就出来了 不用手敲
public event PropertyChangedEventHandler PropertyChanged;
}
然后查询的时候让他默认为false
public List GetAllRoleType()
{
var list = from tb in myModel.S_RoleType

                   select new RoleTypeVo
                   {
                       RoleType = tb.RoleType,
                       RoleTypeID = tb.RoleTypeID,
                       RTchked=false,

                   };
        //返回数据
        return list.ToList();
    }

如果你要选中他的话就是要绑定事件的
<i:Interaction.Triggers>
<i:EventTrigger EventName=“SelectionChanged”>
<i:InvokeCommandAction Command="{Binding Rtselect}" CommandParameter="{Binding ElementName=dgRoleType}" />
</i:EventTrigger>
</i:Interaction.Triggers>
if (SelectRoleType.RTchked == false)
{
var id = SelectRoleType.RoleTypeID;
for (int i = 0; i < DeRoleType.Count(); i++)
{
if (id == DeRoleType[i].RoleTypeID)
{
DeRoleType[i].RTchked = true;
}
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值