/// <summary>
        ///  This change the locale.
        /// </summary>
        /// <param name="e"></param>
        private void OnLocaleLabelChanged(DependencyPropertyChangedEventArgs e)
        {
            List <string> localizationStrings = e.NewValue as List <string>;

            if (localizationStrings != null)
            {
                ComponentFiller filler = new ComponentFiller();
                List <ComponentFiller.UiMetaObject> listOfObjects = filler.GetCollectionProperties(DataSource);

                for (int i = 0; i < localizationStrings.Count; i++)
                {
                    if (i < listOfObjects.Count)
                    {
                        listOfObjects[i].LabelText = localizationStrings[i];
                    }
                }
                for (int i = 0; i < listOfObjects.Count; i++)
                {
                    listOfObjects[i].ChangedItem = _localCommand;
                }
            }
        }
        /// <summary>
        ///  DataSourceChanged
        /// </summary>
        /// <param name="d"></param>
        private void OnDataSourceChanged(DependencyPropertyChangedEventArgs e)
        {
            object              value         = e.NewValue;
            ComponentFiller     filler        = new ComponentFiller();
            List <UiMetaObject> listOfObjects = filler.GetCollectionProperties(value) as List <UiMetaObject>;
            int            count = listOfObjects.Count <UiMetaObject>();
            IList <string> localizationStrings = Localization as List <string>;
            int            secondCount         = localizationStrings.Count <string>();

            // i am sure that the component filler gives us a list of objects.
            for (int i = 0; i < count; i++)
            {
                listOfObjects[i].ChangedItem = _localCommand;
            }
            if (count == secondCount)
            {
                for (int i = 0; i < count; i++)
                {
                    listOfObjects[i].LabelText = localizationStrings[i];
                }
            }
            this.TextBoxCollection.ItemsSource = listOfObjects;
        }