foreach (LayerInfo l in dynamicServiceLayer.Layers) { if(!l.Name.Contains("label)") MySubLayers.Add(new MyLayerInfo(l)); }
<ListBox x:Name="SubLayerListBox" Margin="0,5,0,0" Grid.Row="1"> <ListBox.ItemTemplate> <DataTemplate> <CheckBox Margin="2" Name="DynamicLayerCalifornia" Content="{Binding LayerInfo.Name}" IsChecked="{Binding IsVisible}" Tag="{Binding LayerInfo.ID}" ClickMode="Press" Click="CheckBox_Click" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
ObservableCollection<MyLayerInfo> MySubLayers = new ObservableCollection<MyLayerInfo>(); public SubLayerList() { InitializeComponent(); this.SubLayerListBox.ItemsSource = MySubLayers; } private void ArcGISDynamicMapServiceLayer_Initialized(object sender, EventArgs e) { ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer dynamicServiceLayer = sender as ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer; foreach (LayerInfo l in dynamicServiceLayer.Layers) MySubLayers.Add(new MyLayerInfo(l)); if (dynamicServiceLayer.VisibleLayers == null) dynamicServiceLayer.VisibleLayers = GetDefaultVisibleLayers(dynamicServiceLayer); UpdateIsVisibleProperty(dynamicServiceLayer.VisibleLayers.ToList()); } //TODO: call this method everytime dynamicServiceLayer.VisibleLayers is updated private void UpdateIsVisibleProperty(List<int> visibleLayerList) { foreach (MyLayerInfo info in MySubLayers) info.IsVisible = visibleLayerList.Contains(info.LayerInfo.ID); }
public class MyLayerInfo : INotifyPropertyChanged { public MyLayerInfo(LayerInfo info) { LayerInfo = info; } private LayerInfo layerInfo; public LayerInfo LayerInfo { get { return layerInfo; } set { if (layerInfo != value) { layerInfo = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("LayerInfo")); } } } bool isVisible; public bool IsVisible { get { return isVisible; } set { if (isVisible != value) { isVisible = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("IsVisible")); } } } public event PropertyChangedEventHandler PropertyChanged; }
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.