/// <summary>
        /// On value change event handler.
        /// </summary>
        /// <param name="obj">The dependency object.</param>
        /// <param name="args">Dependency property event arguments.</param>
        private static void OnQueryChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
        {
            DataGridTwinWindow control = (DataGridTwinWindow)obj;

            RoutedPropertyChangedEventArgs <QueryModel> e = new RoutedPropertyChangedEventArgs <QueryModel>(
                (QueryModel)args.OldValue, (QueryModel)args.NewValue, QueryChangedEvent);

            control.OnQueryChanged(e);
        }
        /// <summary>
        /// On value change event handler.
        /// </summary>
        /// <param name="obj">The dependency object.</param>
        /// <param name="args">Dependency property event arguments.</param>
        private static void OnMaxRecordsChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
        {
            DataGridTwinWindow control = (DataGridTwinWindow)obj;

            RoutedPropertyChangedEventArgs <int> e = new RoutedPropertyChangedEventArgs <int>(
                (int)args.OldValue, (int)args.NewValue, MaxRecordsChangedEvent);

            control.OnMaxRecordsChanged(e);
        }
        /// <summary>
        /// On value change event handler.
        /// </summary>
        /// <param name="obj">The dependency object.</param>
        /// <param name="args">Dependency property event arguments.</param>
        private static void OnWhereClauseChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
        {
            DataGridTwinWindow control = (DataGridTwinWindow)obj;

            RoutedPropertyChangedEventArgs <string> e = new RoutedPropertyChangedEventArgs <string>(
                (string)args.OldValue, (string)args.NewValue, WhereClauseChangedEvent);

            control.OnWhereClauseChanged(e);
        }