【问题标题】:WPF DataBinding Bing Maps wpf apiWPF DataBinding Bing Maps wpf api
【发布时间】:2013-04-19 15:31:38
【问题描述】:

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

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

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

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

有什么想法吗?例子?

【问题讨论】:

    标签: wpf bing-maps


    【解决方案1】:

    你说得对,Bing Maps WPF Control API 文档就是个笑话。

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

    你可以开始阅读Data Binding to Collections

    【讨论】:

    • 您还可以查看XAML Map Control 中的示例 WPF 应用程序,它也有一个 MapItemsControl。示例应用程序展示了如何使用它。
    • 谢谢.. 这为我指明了正确的方向。我需要花一些时间,首先处理绑定到集合的基本示例。然后转到地图上。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多