public static void RoutePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { FrameworkElement fe = d as FrameworkElement; if (fe == null || e.NewValue == null && e.OldValue != null) { return; } if (DesignerProperties.GetIsInDesignMode(fe)) { DependencyProperty labelText = LabelPropertySelector.TryGetValue(fe.GetType()); if (labelText != null && fe.NotSet(labelText)) { fe.SetValue(labelText, e.NewValue); } return; } string route = (string)e.NewValue; var parent = GetPropertyRoute(fe.Parent ?? fe); if (parent != null) { InititializeRoute(fe, route, e.Property); } else { if (fe is IPreLoad) { ((IPreLoad)fe).PreLoad += (s, e2) => InititializeRoute(fe, route, e.Property); } else { fe.Loaded += (s, e2) => InititializeRoute(fe, route, e.Property); } } if (fe is DataGrid) { fe.Initialized += DataGrid_Initialized; } if (fe is ListView) { fe.Initialized += ListView_Initialized; } }
static Common() { RouteTask += TaskSetTypeProperty; RouteTask += TaskSetValueProperty; RouteTask += TaskSetLabelText; RouteTask += TaskSetUnitText; RouteTask += TaskSetFormatText; RouteTask += TaskSetIsReadonly; RouteTask += TaskSetImplementations; RouteTask += TaskSetMove; RouteTask += TaskSetCollaspeIfNull; RouteTask += TaskSetNotNullItemsSource; RouteTask += TaskSetNullValueEntityCombo; RouteTask += TaskSetAutomationName; RouteTask += TaskSetVoteAutoHide; RouteTask += TaskSetMaxLenth; LabelOnlyRouteTask += TaskSetLabelText; LabelOnlyRouteTask += TaskSetVoteAutoHide; DataGridColumnRouteTask += TaskDataGridColumnSetValueProperty; DataGridColumnRouteTask += TaskDataGridColumnSetLabelText; DataGridColumnRouteTask += TaskDataGridColumnSetReadOnly; DataGridColumnLabelOnlyRouteTask += TaskDataGridColumnSetLabelText; GridViewColumnRouteTask += TaskGridViewColumnSetValueProperty; GridViewColumnRouteTask += TaskGridViewColumnSetLabelText; GridViewColumnLabelOnlyRouteTask += TaskGridViewColumnSetLabelText; ValuePropertySelector.SetDefinition(typeof(FrameworkElement), FrameworkElement.DataContextProperty); ValuePropertySelector.SetDefinition(typeof(ListView), ItemsControl.ItemsSourceProperty); ValuePropertySelector.SetDefinition(typeof(DataGrid), ItemsControl.ItemsSourceProperty); TypePropertySelector.SetDefinition(typeof(FrameworkElement), null); LabelPropertySelector.SetDefinition(typeof(FrameworkElement), null); LabelPropertySelector.SetDefinition(typeof(HeaderedContentControl), HeaderedContentControl.HeaderProperty); LabelPropertySelector.SetDefinition(typeof(TextBlock), TextBlock.TextProperty); LabelPropertySelector.SetDefinition(typeof(Label), Label.ContentProperty); }