3

我花了无数时间阅读和研究这个话题——我似乎无法在它上面站稳脚跟。这是我的场景:

我为一家提供资产跟踪(带有一些附加功能)的公司编写软件。我们目前有一个使用 googlemaps api 的基于 ASP.NET 的网站。所以这是我很舒服的。

我现在的任务是编写一个具有许多相同功能的 WPF 应用程序,但使用的是 wpf bing maps api。我弄乱了地图并弄清楚(非 mvvm 方式)如何绘制自定义图钉、多边形等……现在我需要使用数据绑定功能。这就是我似乎无法将两者放在一起的地方。基本上我要做的是将创建自定义图钉的自定义类的集合绑定到 MapControlItem。

文档有点过于碎片化和抽象,我无法抓住一些东西 - 或者我可能只是一个太多的 Web 开发人员,并且真的很难掌握一个对我来说是新概念的东西。

有任何想法吗?例子?

4

2 回答 2

4

没错,Bing Maps WPF Control API 文档就是个笑话。

无论如何,您必须使用 aMapItemsControl并将其ItemsSource属性绑定到您的项目集合。和ItemsContainerStyle/或ItemTemplate属性将定义在地图上显示的 UI 对象。

您可以开始阅读有关Data Binding to Collections的内容。

于 2013-04-19T15:53:20.727 回答
0

我只玩过 Windows 8 版本的 Bing 地图控件,而不是 WPF 版本,所以如果我的回答不太恰当,我深表歉意。

我所知道的是,在 Windows 8 中,您不能为 MapLayers 或 MapChildren 应用绑定。根据您的描述,我相信您无法在 WPF 中对这些属性进行绑定,仅仅是因为它们不是依赖属性。

所以只剩下 1 个解决方案,在您窗口的代码隐藏中,订阅您的 ViewModel 的 PropertyChanged 事件,并手动将您需要的任何更新应用到您的控件。

另一种方法是创建一个 UserControl,它将简单地显示一个 BingMaps 控件,并向这个 userControl 添加一个“BingMapsContext”(或其他)依赖属性,以便在绑定该特定属性时手动更新地图控件。

于 2013-04-19T15:51:41.237 回答