static void OnQueryWindowPropsChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            DefineQueryControl    o     = d as DefineQueryControl;
            QueryWindowProperties props = e.NewValue as QueryWindowProperties;

            o.setQueryProps();
        }
        static void OnFeatureLayerChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            DefineQueryControl o     = d as DefineQueryControl;
            FeatureLayer       layer = e.NewValue as FeatureLayer;

            if (layer != null && !(string.IsNullOrWhiteSpace(layer.Url)))
            {
                ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.SubLayerDescription.GetServiceInfoAsync(layer.Url, (sender2, e2) =>
                {
                    if (e2.Description != null && e2.Description.Fields != null && e2.Description.Fields.Length > 0)
                    {
                        ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.Query query = new ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.Query(new ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.QueryDescription()
                        {
                            WhereClause = layer.Where
                        });
                        o.QueryProperties = new ESRI.ArcGIS.Mapping.Controls.ArcGISOnline.DefineQueryControl.QueryWindowProperties()
                        {
                            Query = query, SubLayerDescription = e2.Description
                        };
                    }
                }, layer.ProxyUrl);
            }
        }