WPF C# DataGrid 动态添加删除行,并实现序号、日期选择、ComboBox下拉框、串口号获取、文本框事件、按钮和图片状态控制
WPF C# DataGrid 动态添加删除行,并实现序号、日期选择、ComboBox下拉框、串口号获取、文本框事件、按钮和图片状态控制
本文将介绍如何在 WPF C# 中创建一个包含 10 列的 DataGrid,并实现以下功能:
- 动态添加和删除行,并自动更新序号。* 使用 DatePicker 选择开始日期和结束日期。* 使用 ComboBox 选择电源设备和端口号,并实现下拉框数据绑定和事件处理。* 通过鼠标事件获取当前电脑的串口号。* 使用 TextBox 输入泵温度和功率值,并处理文本改变事件。* 使用 Button 控制设备开关状态。* 使用 Image 显示设备的开关状态,并根据按钮状态动态更新图片。
1. DataGrid 控件的创建和列定义
首先,在 XAML 文件中添加一个 DataGrid 控件,并定义 10 列:xml
2. 数据模型和数据绑定
创建数据模型类,用于存储 DataGrid 中每一行的数据:csharppublic class DataItem{ public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public int PowerDeviceId { get; set; } public string SerialPort { get; set; } public int PowerWattage { get; set; } public double PumpTemperature { get; set; } public double PowerValue { get; set; } public string DeviceStatusImage { get; set; }}
在代码中创建数据集合,并将 DataGrid 的 ItemsSource 属性绑定到该集合:csharppublic partial class MainWindow : Window{ private ObservableCollection
public MainWindow() { InitializeComponent(); myDataGrid.ItemsSource = _dataItems; }}
3. 添加和删除行
添加行:csharpprivate void AddRow(){ _dataItems.Add(new DataItem());}
删除行:csharpprivate void DeleteRow(DataItem item){ _dataItems.Remove(item);}
4. ComboBox 下拉框数据绑定和事件处理
在代码中创建下拉框数据源,并将 ComboBox 的 ItemsSource 属性绑定到对应的数据源:csharp// 电源设备下拉框数据源public List
// 端口号下拉框数据源public List
// 功率瓦数下拉框数据源public List
// 获取当前电脑的串口号private void GetSerialPorts(){ // 获取串口号并添加到 SerialPorts 集合中}
// 端口号 ComboBox 鼠标左键按下事件private void SerialPortComboBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e){ GetSerialPorts();}
// 功率瓦数 ComboBox 下拉框选中事件private void PowerWattageComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e){ // 处理功率瓦数选择事件}
5. 文本框事件处理
在 TextBox 的 TextChanged 事件中处理文本改变逻辑:csharpprivate void PumpTemperatureTextBox_TextChanged(object sender, TextChangedEventArgs e){ // 处理泵温度文本改变事件}
private void PowerValueTextBox_TextChanged(object sender, TextChangedEventArgs e){ // 处理功率值文本改变事件}
6. 按钮点击事件和图片状态控制
在 Button 的 Click 事件中处理开关逻辑,并更新图片状态:csharpprivate void SwitchButton_Click(object sender, RoutedEventArgs e){ // 获取当前行数据 var dataItem = (sender as FrameworkElement).DataContext as DataItem;
// 处理开关逻辑,并根据开关状态设置 DeviceStatusImage 属性}
总结
本文详细介绍了如何在 WPF C# 中创建一个功能完善的 DataGrid 控件,并实现了动态添加删除行、序号、日期选择、ComboBox 下拉框、串口号获取、文本框事件、按钮和图片状态控制等功能。通过本文的介绍,您可以更好地理解和使用 DataGrid 控件,并将其应用到实际项目中
原文地址: https://www.cveoy.top/t/topic/gvix 著作权归作者所有。请勿转载和采集!