У меня есть сторонний пользовательский элемент управления, который я должен использовать для отображения карты, к сожалению, этот сторонний элемент управления не поддерживает привязку данных, но среда, в которой я должен его использовать, может передавать данные только через привязку.
Пример кода: -
При существующем положении вещей я могу добавить сторонний элемент управления в файл 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);
То, что я хотел бы сделать, это связать ObservableCollection
WMSLayer (или мою собственную модель, которая немного более универсальна, чем та, которую использует зритель) с наблюдателем, однако, поскольку у меня нет Доступ к коду просмотра Я предполагаю, что мне нужно написать элемент управления wrapper
.
Насколько я вижу, элемент управления wrapper
должен содержать экземпляр стороннего пользовательского элемента управления и DependencyProperty
, чтобы позволить мне связать ObservableCollection
данных слоя карты, чтобы я мог использовать его как параметры для методов на стороннем пользовательском контроле.
Я прочитал так много примеров привязки в пользовательских элементах управления, что у меня кружится голова, к сожалению, все они имеют дело с представлением связанных данных в пользовательском интерфейсе. Я хочу передать связанные данные другому элементу управления, который позаботится о презентации. Я знаю, что это не совсем правильный способ работы элементов управления Silverlight , но я не имею никакого влияния на дизайн стороннего usercontrol Я не вижу другого способа обойти это.
Может ли кто-нибудь помочь мне понять, как я могу получить доступ к связанным данным в моем wrapper
usercontrol и передать их в методы, предоставляемые сторонним usercontrol, пожалуйста?
Заранее спасибо: о)