-1

我们正在用 C++ 和 JavaScript 开发一个 Metro 风格的应用程序。C++ 端为我们提供了IObservableVector<T>实例。JavaScript 端使用WinJS.UI.ListView控件。

列表视图通常连接到WinJS.UI.IListDataSource实例。最典型的是,一个人接受WinJS.Binding.List并使用它的dataSource属性。

但是,想要连接IObservableVector<T>到列表视图似乎很自然。有没有办法做到这一点?比如有没有把IObservableVector<T>s变成Lists或者IListDataSources的适配器?

我们可以采用的一种方法是编写我们自己的自定义WinJS.UI.IListDataAdapter实现,该实现IObservableVector<T>WinJS.UI.VirtualizedDataSource. 但是,有人已经这样做了吗?它似乎应该在框架中。

4

2 回答 2

1

WinJS 1.0 不支持 WinRT 更改通知接口(INotifyPropertyChanged、IObservableVector)。如果要将它们连接在一起,则需要编写适配器/数据源。

于 2012-08-09T18:41:02.527 回答
1

基于@Chris Tavares 的有用(如果令人沮丧)的回应,我编写了这样一个适配器:

https://github.com/NobleJS/WinningJS/blob/master/lib/ObservableVectorDataSource.js

它目前是只读的(因此您无法更新数据源并期望更改传播到可观察向量),但在我们的应用程序中效果很好。

于 2012-08-10T16:55:02.910 回答