机器人控制器双击事件未赋值
本文关键字:赋值 事件 双击 控制器 机器人 | 更新日期: 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();
}
谢谢
您可以通过设置一个断点轻松地调试它,但是,是的,我也假设controller
是null
。您需要检查controller
设置的位置以及为什么controller
被设置为null
。
下面的片段似乎从列表项中获得的controllerInfo
中分配了一个新的控制器。你说没有。虽然一个简单的断点和分步调试过程可以更清楚地说明发生了什么,但我可以写下一些大胆的猜测:
可能出现的问题:
-
item == null
:代码块根本不执行 -
controllerInfo.Availability != Availability.Available
:代码块不执行 -
controllerInfo.IsVirtual == false
:赋值不执行 -
ControllerFactory.CreateFrom
返回null
:您应该在this.controller.Logon(UserInfo.DefaultUser);
行中获得异常 - 可能你把
this.controller
设置为null
在你的代码的某个地方。
那么是哪一个呢?