private void FeatureLayer_Initialized(object sender, EventArgs e)
{
FeatureLayer fl = sender as FeatureLayer;
#region populate the FeatureTypeListBox with the possible templates
FeatureTypeListBox.Items.Clear();
IDictionary<object, FeatureType> featureTypes = fl.LayerInfo.FeatureTypes;
if (fl.Renderer != null)
{
Symbol defaultSymbol = fl.Renderer.GetSymbol(null);
if (featureTypes != null && featureTypes.Count > 0)
{
foreach (KeyValuePair<object, FeatureType> featureTypePairs in featureTypes)
{
if (featureTypePairs.Value != null && featureTypePairs.Value.Templates != null && featureTypePairs.Value.Templates.Count > 0)
{
foreach (KeyValuePair<string, FeatureTemplate> featureTemplate in featureTypePairs.Value.Templates)
{
string name = featureTypePairs.Value.Name;
if (featureTypePairs.Value.Templates.Count > 1)
name = string.Format("{0}-{1}", featureTypePairs.Value.Name, featureTemplate.Value.Name);
Symbol symbol = featureTemplate.Value.GetSymbol(fl.Renderer) ?? defaultSymbol;
FeatureTypeListBox.Items.Add(new CVDTemplateItem(name, symbol, Convert.ToInt32(featureTypePairs.Value.Id)));
}
}
}
}
}
#endregion
#region get coded value codes and descriptions
var facilityField = fl.LayerInfo.Fields.Where(f => f.Name == "facility").First();
facilityFieldDomain = facilityField.Domain as CodedValueDomain;
FacilityChoicesListBox.ItemsSource = facilityFieldDomain.CodedValues;
var qualityField = fl.LayerInfo.Fields.Where(f => f.Name == "quality").First();
qualityFieldDomain = qualityField.Domain as CodedValueDomain;
QualityChoicesListBox.ItemsSource = qualityFieldDomain.CodedValues;
#endregion
//enable the app bar and context menu items
for (int i = 0; i < ApplicationBar.Buttons.Count; ++i)
(ApplicationBar.Buttons[i] as IApplicationBarIconButton).IsEnabled = true;
}