当前位置: 首页 > news >正文

WPF入门到精通:4.页面增删改查及调用接口(待完善)

在WPF中,页面的增删改查可以通过使用DataGrid等控件来实现。接口的调用可以使用HttpClient或RestSharp等网络库来完成。

1.页面增删改查

使用DataGrid控件来展示数据,并通过绑定数据源来实现数据的增删改查操作。示例代码如下:

XAML代码:

学生View

<DataGrid ItemsSource="{Binding Students}"          SelectedItem="{Binding SelectedItem}"><DataGrid.Columns><DataGridTextColumn Header="学号" Binding="{Binding ID}" /><DataGridTextColumn Header="姓名" Binding="{Binding Name}" /><DataGridTextColumn Header="年龄" Binding="{Binding Age}" /></DataGrid.Columns>
</DataGrid>

C#代码:

学生实体Model

public class Student
{public string ID { get; set; }public string Name { get; set; }public int Age { get; set; }
}

ViewModel

public class MainViewModel : ViewModelBase
{private ObservableCollection<Student> students;public ObservableCollection<Student> Students{get { return students; }set{students = value;PCEH();}}private Student studentModel;public Student StudentModel{get { return studentModel; }set{studentModel= value;PCEH();}}public MainViewModel(){Students = new ObservableCollection<Student>(){new Student() { ID = "001", Name = "张三", Age = 18 },new Student() { ID = "002", Name = "李四", Age = 19 },new Student() { ID = "003", Name = "王五", Age = 20 }};}public void AddStudent(Student student){Students.Add(student);}public void RemoveStudent(Student student){Students.Remove(student);}public void UpdateStudent(Student student){var oldStudent = Students.FirstOrDefault(s => s.ID == student.ID);if (oldStudent != null){oldStudent.Name = student.Name;oldStudent.Age = student.Age;}}
}

2.调用接口

使用HttpClient库发送HTTP请求,并通过反序列化方式来解析服务器返回的数据。示例代码如下:

var client = new HttpClient();
var response = await client.GetAsync("http://api.example.com/users");
if (response.IsSuccessStatusCode)
{var content = await response.Content.ReadAsStringAsync();var users = JsonConvert.DeserializeObject<List<User>>(content);
}

其中,User为服务器返回数据所对应的实体类。反序列化过程中需要使用Newtonsoft.Json库,可通过NuGet进行安装。

另外,如果接口需要进行授权认证,可通过HttpClient的Header属性来添加认证信息:

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

http://www.lryc.cn/news/134482.html

相关文章:

  • 容器和云原生(三):kubernetes搭建与使用
  • spring boot集成jasypt 并 实现自定义加解密
  • Qt文件系统操作和文件的读写
  • MME: A Comprehensive Evaluation Benchmark for Multimodal Large Language Models
  • 学习开发振弦采集模块的注意事项
  • 抵御时代风险:高级安全策略与实践
  • (3)、SpringCache源码分析
  • 如何在 Ubuntu 中安装最新的 Python 版本
  • 等保测评--安全物理环境--测评方法
  • 解决jmeter导入jmx文件报错方法
  • CH32V307 开启浮点后rtthread的修改
  • 网络面试题(172.22.141.231/26,该IP位于哪个网段? 该网段拥有多少可用IP地址?广播地址是多少?)
  • macOS nginx部署前端项目
  • 管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——削弱——第一节 推理论证
  • LoRa 网络的高效自适应数据链路层架构
  • Ubuntu软件源、pip源大全,国内网站网址,阿里云、网易163、搜狐、华为、清华、北大、中科大、上交、山大、吉大、哈工大、兰大、北理、浙大
  • 4 Python的函数
  • Claude 2 国内镜像站
  • MySQL的基础操作
  • Dockerfile快速搭建自己专属的LAMP环境
  • 秒懂算法│博弈论
  • Springboot整合RabbitMQ消息中间件
  • 基于springboot+vue的食材商城(前后端分离)
  • Maven解析
  • 如何使用数学将 NumPy 函数的性能提高 50%
  • 群狼调研(长沙政策第三方评估)| 社情民意调查的内容
  • 【三维重建】【深度学习】NeuS代码Pytorch实现--测试阶段代码解析(上)
  • day-24 代码随想录算法训练营(19)回溯part01
  • Redis之SYNC与PSYNC命令
  • 共创无线物联网数字化新模式|协创数据×企企通采购与供应链管理平台项目成功上线