/// <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; }