向量在具有数据绑定的lambda中不起作用

时间:2018-10-05 23:22:40

标签: xaml c++-cx

我有一个TreeView XAML控件。我正在将数据绑定到具有属性的Vector:

    property Windows::Foundation::Collections::IObservableVector<TreeViewData^>^ Items
    {
        Windows::Foundation::Collections::IObservableVector<TreeViewData^>^ get() { return _containerItems; }
    }

如果我为我的异步操作在lambda后面附加了矢量,那就很好了。如果我在lambda中追加,则会出现此错误:

  

在DevicePanels.exe中的0x00007FF8E8845419处引发了异常:Microsoft   C ++异常:内存位置处的Platform :: InvalidCastException ^   0x0000001011AFE5A0。 HRESULT:0x80004002不支持这种接口   WinRT信息:不支持此类接口

// this works       
_containerItems->Append(ref new TreeViewData());
_handlerAdded = ref new TypedEventHandler<DeviceWatcher^, DeviceInformation^>(
    [this](DeviceWatcher^ sender, DeviceInformation^ deviceInfo)
{
    Dispatcher->RunAsync(CoreDispatcherPriority::Low, ref new DispatchedHandler(
        [this, deviceInfo]()
    {   
        // this does not work
        _containerItems->Append(ref new TreeViewData(deviceInfo));

似乎主要区别在于附加程序在哪个线程上运行,但错误代码为E_NOINTERFACE

有什么建议吗?

0 个答案:

没有答案