private static void MyPropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (DesignerProperties.GetIsInDesignMode(d) == true) { return; } DataGridTextColumn textColumn = (DataGridTextColumn)d; Style textColumnStyle = e.NewValue as Style; foreach (SetterBase setterBase in textColumnStyle.Setters) { if (setterBase is Setter) { Setter setter = setterBase as Setter; if (setter.Value is BindingBase) { //Not done yet.. } else { Type type = textColumn.GetType(); PropertyInfo propertyInfo = type.GetProperty(setter.Property.Name); propertyInfo.SetValue(textColumn, setter.Value, null); } } } }
/// <summary> /// Convet the window language to the selected language /// </summary> /// <param name="Frmclass">window object(this)</param> public static void Convert(DependencyObject Frmclass) { //Convert Labels try { foreach (Label lbl in FindVisualChildren <Label>(Frmclass)) { lbl.Content = Global.controller.ConvetLanguage(lbl.Content.ToString(), Global.LanguageFileName); } } catch (Exception) { } //Convert Buttons try { foreach (Button btn in FindVisualChildren <Button>(Frmclass)) { btn.Content = Global.controller.ConvetLanguage(btn.Content.ToString(), Global.LanguageFileName); } } catch (Exception) {} //Convert DataGridTemplateColumn try { foreach (DataGrid dgv in FindVisualChildren <DataGrid>(Frmclass)) { int Clm = dgv.Columns.Count(); for (int i = 0; i <= Clm; i++) { DataGridTemplateColumn temp = new DataGridTemplateColumn(); DataGridTextColumn text = new DataGridTextColumn(); if (dgv.Columns[i].GetType() == temp.GetType()) { DataGridTemplateColumn templClm = (DataGridTemplateColumn)dgv.Columns[i]; templClm.Header = Global.controller.ConvetLanguage(templClm.Header.ToString(), Global.LanguageFileName); } else if (dgv.Columns[i].GetType() == text.GetType()) { DataGridTextColumn textclm = (DataGridTextColumn)dgv.Columns[i]; textclm.Header = Global.controller.ConvetLanguage(textclm.Header.ToString(), Global.LanguageFileName); } } } } catch (Exception) { } }