您好我在WPF C#中编写了一个程序来扫描机器人控制器,显示它们的数据,然后在按下特定按钮时开始和停止运行。
我可以扫描并显示信息,但是当我双击列表视图项时,其信息未分配给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();
}
感谢
答案 0 :(得分:0)
您可以通过设置断点轻松调试此问题,但是,我还假设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
。那是哪一个?