我的 WPF Powermill 工具

xaml界面:

cs 复制代码
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Powermill编程工具
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        //定义刀具列表全局变量
        public ObservableCollection<string> tool_list { get; set; }

        //定义后处理器列表全局变量
        public ObservableCollection<string> post_list { get; set; }

        //定义刀路信息列表全局变量
        public ObservableCollection<path_inf> path_infs { get; set; }

        private void DeleteSelectedItem_Click(object sender, RoutedEventArgs e)
        {
            // 判断是否选中行
            if (lvList.SelectedItem == null)
                return;

            // 获取选中的数据项
            path_inf selectedItem = (path_inf)lvList.SelectedItem;

            // 从 ObservableCollection 中删除(自动刷新UI)
            if (DataContext is MainWindow vm)
            {
                vm.path_infs.Remove(selectedItem);
            }
        }

        public MainWindow()
        {
            InitializeComponent();

            //初始化 运行中的Powermill 下拉选项
            ObservableCollection<pm_project> pm_projects = new ObservableCollection<pm_project>
            {
                new pm_project { Name = "Alice" },
                new pm_project { Name = "Bob" },
                new pm_project { Name = "Charlie" }
            };
            Powermill_list.ItemsSource = pm_projects;
            Powermill_list.SelectedIndex = 0;

            //初始化刀具列表
            tool_list = new ObservableCollection<string>
            {
                "D63R8","D35R5","D16R0.8","D10R0","D20R0","D30R0"
            };

            //初始化刀路信息
            path_infs = new ObservableCollection<path_inf>
            {
                new path_inf { path_name = "开粗",tool_name="D10R0",offset=@"0.5/0.2",spindle="2000",feedrate="3000" },
                new path_inf { path_name = "光平面",tool_name="D20R0",offset=@"0.2/0.2",spindle="3000",feedrate="1000" },
                new path_inf { path_name = "清角",tool_name="D30R0",offset=@"0.3/0.2",spindle="4000",feedrate="500" }
            };
            lvList.ItemsSource = path_infs;

            //初始化后处理器列
            post_list = new ObservableCollection<string>
            {
                "发那科",
                "西门子",
                "北京精雕"
            };
            post_ComboBox.ItemsSource = post_list;
            post_ComboBox.SelectedIndex = 0;

            // 绑定数据源上下文
            DataContext = this;
        }
    }

    //运行中的pm项目
    public class pm_project
    {
        public string Name { get; set; }
    }

    //列表行数据模型
    public class path_inf
    {
        public string path_name { get; set; }   //刀路名
        public string tool_name { get; set; }   //刀具名
        public string offset { get; set; }      //余量
        public string spindle { get; set; }     //转速
        public string feedrate { get; set; }     //进给
    }
}

CS后台:

cs 复制代码
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Powermill编程工具
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        //定义刀具列表全局变量
        public ObservableCollection<string> tool_list { get; set; }

        //定义后处理器列表全局变量
        public ObservableCollection<string> post_list { get; set; }

        //定义刀路信息列表全局变量
        public ObservableCollection<path_inf> path_infs { get; set; }

        private void DeleteSelectedItem_Click(object sender, RoutedEventArgs e)
        {
            // 判断是否选中行
            if (lvList.SelectedItem == null)
                return;

            // 获取选中的数据项
            path_inf selectedItem = (path_inf)lvList.SelectedItem;

            // 从 ObservableCollection 中删除(自动刷新UI)
            if (DataContext is MainWindow vm)
            {
                vm.path_infs.Remove(selectedItem);
            }
        }

        public MainWindow()
        {
            InitializeComponent();

            //初始化 运行中的Powermill 下拉选项
            ObservableCollection<pm_project> pm_projects = new ObservableCollection<pm_project>
            {
                new pm_project { Name = "Alice" },
                new pm_project { Name = "Bob" },
                new pm_project { Name = "Charlie" }
            };
            Powermill_list.ItemsSource = pm_projects;
            Powermill_list.SelectedIndex = 0;

            //初始化刀具列表
            tool_list = new ObservableCollection<string>
            {
                "D63R8","D35R5","D16R0.8","D10R0","D20R0","D30R0"
            };

            //初始化刀路信息
            path_infs = new ObservableCollection<path_inf>
            {
                new path_inf { path_name = "开粗",tool_name="D10R0",offset=@"0.5/0.2",spindle="2000",feedrate="3000" },
                new path_inf { path_name = "光平面",tool_name="D20R0",offset=@"0.2/0.2",spindle="3000",feedrate="1000" },
                new path_inf { path_name = "清角",tool_name="D30R0",offset=@"0.3/0.2",spindle="4000",feedrate="500" }
            };
            lvList.ItemsSource = path_infs;

            //初始化后处理器列
            post_list = new ObservableCollection<string>
            {
                "发那科",
                "西门子",
                "北京精雕"
            };
            post_ComboBox.ItemsSource = post_list;
            post_ComboBox.SelectedIndex = 0;

            // 绑定数据源上下文
            DataContext = this;
        }
    }

    //运行中的pm项目
    public class pm_project
    {
        public string Name { get; set; }
    }

    //列表行数据模型
    public class path_inf
    {
        public string path_name { get; set; }   //刀路名
        public string tool_name { get; set; }   //刀具名
        public string offset { get; set; }      //余量
        public string spindle { get; set; }     //转速
        public string feedrate { get; set; }     //进给
    }
}
相关推荐
KmSH8umpK1 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第三篇
redis·分布式·wpf
KmSH8umpK2 天前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案
redis·分布式·wpf
武藤一雄2 天前
WPF:MessageBox系统消息框
前端·microsoft·c#·.net·wpf
武藤一雄2 天前
WPF进阶:万字详解WPF如何性能优化
windows·性能优化·c#·.net·wpf·.netcore·鲁棒性
wangnaisheng2 天前
【WPF】路由事件详细使用
wpf
雨浓YN2 天前
GKMLT通讯工具箱(WPF MVVM) - 07-倍福ADS通讯
网络·wpf
雨浓YN2 天前
GKMLT通讯工具箱(WPF MVVM) - 04-三菱MC通讯
wpf
不会编程的懒洋洋3 天前
WPF XAML+布局+控件
xml·开发语言·c#·视觉检测·wpf·机器视觉·视图
雨浓YN3 天前
GKMLT通讯工具箱(WPF MVVM) - 06-OPCUA通讯
wpf
雨浓YN3 天前
GKMLT通讯工具箱(WPF MVVM) - 03-西门子S7通讯
wpf