Legend конторл и binding

0 голосов
спросил 15 Июнь, 11 от Peps (5,330 баллов) в категории Программные продукты Esri
Возникла следующая проблема.Есть динамический слой с кучей подслоев, и кнопка информации. Слои начинают отображаться с определенного масштаба, соответственно хочется что бы   кнопка информации становилась активной в тот момент когда слои становятся видимыми. Можно это реализовать функциями c# в событии изменения екстента карты. Но по идее это более правильно сделать прописав binding свойства кнопки на состояние данного слоя в контроле легенды. Кто может подсказать как это сделать, непосредственно в xaml или с помощью bindinga?

5 Ответы

0 голосов
ответил 15 Июнь, 11 от Alexander1 (32,520 баллов)
IsEnabled="{Binding IsInScaleRange}"
    
0 голосов
ответил 16 Июнь, 11 от Peps (5,330 баллов)
Меня интересовало включение видимости не на самом контроле легенды, а связь между видимостью слоя в легенде и кнопки в своем меню инструментов.  
0 голосов
ответил 16 Июнь, 11 от TDenis (42,620 баллов)
IsEnabled="{Binding ElementName=Legend, Path=LayerItems[1].LayerItems[2].IsInScaleRange}"
0 голосов
ответил 17 Июнь, 11 от Alexander1 (32,520 баллов)
Меня интересовало включение видимости не на самом контроле легенды, а связь между видимостью слоя в легенде и кнопки в своем меню инструментов.  

    
Вообще-то, уж если байндить, то байндить по-серьёзному image

Хорошая идея - разместить подобную кнопку не в своём тулбаре, а в темплейте Legend контрола (если речь идёт о MapService, то в Legend.MapLayerTemplate, если о SubLayer, тогда в Legend.LayerTemplate). А её видимость байндить именно так, как я написал в предыдущем сообщении.
Структура сервиса может измениться, как и индексы слоёв. Если же кнопка будет в темплейте, то об этом можно не беспокоится. Удачи.

0 голосов
ответил 17 Июнь, 11 от TDenis (42,620 баллов)
Поддерживаю Александра.
Желательно хоть что-то предусмотреть на случай изменения структуры сервисов и карты. Если не хочется делать кучу кнопок в легенде, то можно хотя бы FallbackValue указать. Или забиндить видимость кнопки на тот же sublayer (через конвертер, понятное дело).
Ещё наверное стоило бы добавить в легенду индексатор по названиям (ID) слоёв.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...