Гуру программирования, посмотрите пожалуйста, кто может помочь с Сильверлайтом.
есть вот такой контрол для
TOC + легендаподробнее и скачать на
сайте разработчикаон дает возможность не перешедшим на десятку+sp1, создавать список слоев с подслоями, даже если ваш сервер 9.3.1 не выставлен наружу
однако оказалось, контрол не поддерживает тайловые слои OSM VE и им подобные.
как бы для всех
неподдерживаемых типов слоев создать минимальный функционал: добавление в список, поддержка имени слоя, смена видимости при выборе чекбокса и прозрачности слайдером.
источником данных для списка слоев в ТОС служит набор сервисов. Вот бы создать dummy-service, чтобы можно было слой добавить в TOC
я пробовал, но у меня не получилось
технические подробности, если заинтересовались:
попробовал руками создать пустой сервис для неподдерживаемого типа слоя,
в ТОС.cs
процедура
private void legend_LoadCompleted(object sender, EventArgs e)
{
MapService service = (MapService)sender;
addHandlers((TreeViewItem)tocTree.ItemContainerGenerator.ContainerFromItem(service));
передает в процедуру addHandlers - null. Что нужно передать в ContainerFromItem, дабы заработало?
private void addHandlers(TreeViewItem tvitem)
{
if (tvitem == null) return;
соответсвенно нет tvitem , нет к нему привязанных событий.
думаю, не только я скажу большое спасибо
(кстати, легенда в 2.1rc тоже не поддерживает OSM. и
The legend supports the following layer types:
ArcGISDynamicMapServiceLayer, ArcGISTiledMapServiceLayer, FeatureLayer.
If the layer is an ArcGISDynamicMapServiceLayer or
ArcGISTiledMapServiceLayer created using ArcGIS Server 10.0 SP1 or
higher the legend is generated using the REST Map Service legend
resource.
http://mapservice-url/legend
If the layers are version 10 or lower the legend is created using the ArcGIS.com
legend service. In order to use the ArcGIS.com legend service your map
service needs to be publicly accessible and your application must be
able to access ArcGIS.com.)