You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI点击CollectionView按钮时无法访问绑定数据项属性问题

问题原因与列表删除实现方案

报错根源

这个现象和你的数据绑定、参数传递逻辑没有任何关系,是Visual Studio即时窗口的固有调试限制:当方法入参声明为object类型时,即时窗口不会自动识别运行时的实际类型做成员解析,哪怕调试器变量面板能正确显示对象的所有属性,直接输入o.Name访问也会抛出"Unknown member"错误,这个问题只存在于调试交互场景,不会影响实际代码运行。

正确实现对象获取与删除逻辑

你只需要在业务代码里对入参做显式的类型判断与转换即可,运行时可以正常拿到完整的BluetoothPeripheral对象,修改DeleteBLEItemControl方法代码如下:

public void DeleteBLEItemControl(object o)
{
    // 安全转换类型,避免传入参数类型不符合的异常
    if (o is BluetoothPeripheral targetDevice)
    {
        // 此处可以正常访问targetDevice.Name/Id/Enabled所有属性
        // 直接从集合中移除对应项,ObservableCollection会自动通知UI刷新
        BluetoothPeripherals.Remove(targetDevice);
    }
}

如果需要在即时窗口调试时直接查看属性,有两种方式:

  • 断点打在类型转换后的代码块内,直接访问已经转好类型的targetDevice变量属性即可
  • 在即时窗口手动执行类型转换后访问,输入((TSDZ2Monitor.Models.BluetoothPeripheral)o).Name就能正常拿到属性值

注意:你使用CommunityToolkit.Mvvm的[ObservableProperty]标记生成的BluetoothPeripherals属性本身已经实现了属性变更通知,ObservableCollection的增删操作也会自动触发UI更新,移除项后不需要额外写刷新逻辑。


.NET MAUI入门学习资源推荐
  • 优先选择官方文档:从环境搭建、基础控件使用、数据绑定、导航、本地数据访问、设备能力调用(包含蓝牙相关操作)全链路知识点都有配套的最小可运行代码示例,知识点逻辑清晰,是最权威的入门资料。
  • 官方示例代码库:包含所有控件、常见业务场景的完整可运行项目,遇到具体功能不知道怎么实现时,可以直接找到对应场景的参考代码,避免踩第三方博客的过时内容坑。
  • 官方入门视频系列:单集时长10-15分钟,每集聚焦一个小功能点,跟着动手敲完就能快速掌握基础开发流程,适合偏好视频学习的开发者。

内容的提问来源于stack exchange,提问作者gfmoore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 06:57:30