/// <summary>
        /// Handles changes on the <see cref="FileNameProperty"/> dependency property. As
        /// WPF internally uses the dependency property system and bypasses the
        /// <see cref="FileName"/> property wrapper, updates should be handled here.
        /// </summary>
        /// <param name="d">The currently processed owner of the property.</param>
        /// <param name="e">Provides information about the updated property.</param>
        private static void FileNamePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FileSelector owner = (FileSelector)d;

            owner.UpdateFileNameDisplay();
            VyvolatUdalostFileNameChanged(owner);
        }
        /// <summary>
        /// Handles changes on the <see cref="MaxDisplayLengthProperty"/> dependency property. As
        /// WPF internally uses the dependency property system and bypasses the
        /// <see cref="MaxDisplayLength"/> property wrapper, updates should be handled here.
        /// </summary>
        /// <param name="d">The currently processed owner of the property.</param>
        /// <param name="e">Provides information about the updated property.</param>
        private static void MaxDisplayLengthPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FileSelector owner = (FileSelector)d;

            owner.UpdateFileNameDisplay();
        }
        private static void VyvolatUdalostFileNameChanged(FileSelector owner)
        {
            RoutedEventArgs newEventArgs = new RoutedEventArgs(FileNameChangedEvent);

            owner.RaiseEvent(newEventArgs);
        }