如何使用smobiler的listview控件实现个人信息修改
前言
在Smobiler中使用ListView 展示数据是一种比较好的方式,一般都会需要对数据进行分页,更新,删除等操作,如下图展示的【点击行项,编辑当前行数据,关闭编辑窗口后更新ListView数据
】
具体实现请往下阅读。
创建ListView
首先在窗体中拖入ListView,ListView的模板类为Userinfo,Userinfo的布局如图:
ListView的数据绑定此次忽略
再新建一个SmobilerUserControl,命名为EditUserinfo.cs,做为编辑窗口,布局如下:
实现
Smoblier的Listview是基于UserControl的,想要对ListVieW的行数据处理,可以把事件写UserCotrol中,如点击ListView行弹出编辑框写在Userinfo.cs中panel的点击事件中
private void panel1_Press(object sender, EventArgs e)
{
EditUserInfo edfrm = new EditUserInfo(labName.Text, labTel.Text);//将当前行的数据传给编辑弹窗
this.Form.ShowDialog(edfrm, (obj, args) =>
{//回调函数在弹窗关闭时执行
if (this.Form.ShowResult == ShowResult.Yes)
{//弹出框点击“确定”,更新listview数据
ListViewRow lr = this.Tag as ListViewRow;//获取listview当前行
((Userinfo)((this.Tag as ListViewRow).Control)).labName.Text = edfrm.txtName.Text;//更新用户名
((Userinfo)((this.Tag as ListViewRow).Control)).labTel.Text = edfrm.txtTel.Text;//更新电话
}
else//弹出框点击“取消”
{
Toast("用户取消操作");
}
});
EditUserinfo.cs中新增一个带参构造函数,用于接收当前选择行的数据
private string name;
private string tel;
//带参构造函数,用于接收数据
public EditUserInfo(string name,string tel) : base()
{
this.name = name;
this.tel = tel;
//This call is required by the SmobilerUserControl.
InitializeComponent();
}
private void btnNo_Press(object sender, EventArgs e)
{
this.Form.ShowResult = ShowResult.No;
this.Close();
}
private void btnYes_Press(object sender, EventArgs e)
{
this.Form.ShowResult = ShowResult.Yes;
this.Close();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了