我有一个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
有什么建议吗?