【发布时间】:2012-01-07 21:23:42
【问题描述】:
我有一个第三方用户控件,我必须使用它来显示地图,不幸的是,这个第三方控件不支持数据绑定,但我必须使用它的框架只能通过绑定传递数据。
示例代码:-
就目前而言,我可以将第三方控件添加到页面的 XAML 文件中,如下所示:-
<ViewerControl:Viewer x:Name="Viewer"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
MouseMove="OnMouseMove">
</ViewerControl:Viewer>
然后我可以定义一个地图层并将其添加到代码隐藏中的地图中,如下所示:-
var layerDefinition = new WMSLayerDefinition("AFG_AGS_1M_MFS",
new Extent(59.7812, 26.9152, 75.5985, 40.9476),
"EPSG:4326") { IsSelectable = true };
var wmsLayer = new WMSLayer(Viewer.GetViewController(),
layerDefinition,
"http://ogc.bgs.ac.uk/cgi-bin/BGS_AGS_EN_Bedrock_and_Structural_Geology/wms/");
Viewer.GetLayerManager().GetLayerGroup(layerGroupName).AddLayer(wmsLayer);
我希望能够将 WMSLayer 的ObservableCollection(或我自己的模型,比查看器使用的模型更通用一点)绑定到查看器,但是因为我没有访问查看器代码我假设我需要编写一个wrapper 控件。
据我所知,wrapper 控件需要包含第三方用户控件的实例和 DependencyProperty 以允许我绑定地图层数据的 ObservableCollection 以便我可以将其用作第三方用户控件方法的参数。
我已经阅读了很多自定义用户控件中的绑定示例,让我头晕目眩,不幸的是,它们都处理在 UI 中呈现绑定数据。我想要做的是将绑定数据传递给另一个负责演示的控件,我知道这不是 Silverlight 控件 工作的真正正确方式,但因为我没有影响关于第三方用户控件的设计,我看不到任何其他方式。
谁能帮助我了解如何访问我的wrapper usercontrol 中的绑定数据并将其传递给第三方 usercontrol 公开的方法?
提前致谢:o)
【问题讨论】:
-
这需要一些示例代码才能让任何人猜测适当的解决方案。
-
谢谢,公平点,已添加代码示例,希望对您有所帮助...
标签: .net binding silverlight-4.0 user-controls observablecollection