机器人控制器双击事件未赋值

本文关键字:赋值 事件 双击 控制器 机器人 | 更新日期: 2023-09-27 18:04:14

你好,我用WPF c#编写了一个程序,用于扫描机器人控制器,显示其数据,然后在按下特定按钮时启动和停止运行。

我可以扫描和显示信息,但是当我双击listview项时,它的信息没有分配给controller

    private void listView1_DoubleClick(object sender, MouseButtonEventArgs e)
    {
        ListViewItem item = sender as ListViewItem; //this.listView1.SelectedItems[0];
        if (item != null)
        {
            ControllerInfo controllerInfo = (ControllerInfo)item.Tag;
            if (controllerInfo.Availability == Availability.Available)
            {
                if (controllerInfo.IsVirtual)
                {
                    this.controller = ControllerFactory.CreateFrom(controllerInfo);
                    this.controller.Logon(UserInfo.DefaultUser);
                    listView1.Items.Clear();
                    listView1.Items.Add(item);
                    EnableControllerFunctionality();
                }

谢谢

机器人控制器双击事件未赋值

您可以通过设置一个断点轻松地调试它,但是,是的,我也假设controllernull。您需要检查controller设置的位置以及为什么controller被设置为null


下面的片段似乎从列表项中获得的controllerInfo中分配了一个新的控制器。你说没有。虽然一个简单的断点和分步调试过程可以更清楚地说明发生了什么,但我可以写下一些大胆的猜测:

可能出现的问题:

  1. item == null:代码块根本不执行
  2. controllerInfo.Availability != Availability.Available:代码块不执行
  3. controllerInfo.IsVirtual == false:赋值不执行
  4. ControllerFactory.CreateFrom返回null:您应该在this.controller.Logon(UserInfo.DefaultUser);
  5. 行中获得异常
  6. 可能你把this.controller设置为null在你的代码的某个地方。

那么是哪一个呢?