代码之家  ›  专栏  ›  技术社区  ›  Jeppe Christensen

从ListView获取对象时的强制转换无效

  •  0
  • Jeppe Christensen  · 技术社区  · 6 年前

    所以我有一个列表视图 IDevice 从一个可观察的集合。 Idevice公司 基本上是外围的蓝牙设备。即物体。

    当用户按下ListView中的给定设备时,我最终希望它调用 Connect() 方法。-但就目前而言,它只是在我测试时被注释掉的。

    listView.ItemTapped += async (s, e) => 
    {
        var answer = await DisplayAlert("Tapped", "Connect to device?", "Yes", "No");
        if(answer == true)
        {
            IDevice name = (IDevice)e;
            await DisplayAlert("name of BLE", name.Name + " " + name.State.ToString(), "OK");
            //Connect((IDevice)e);
        }
    };
    

    问题是,当我进入if语句时,我正在执行一个无效的强制转换。即 (IDevice)e .

    我好像不明白我在这里做错了什么。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Jason    6 年前

    e 是类型 ItemTappedEventArgs ,其中包含一个属性 Item

    IDevice name = (IDevice)e.Item;