private static void MessageCountChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            MessageView owner = (MessageView)d;

            owner.tb.Inlines.Clear();
            //System.Diagnostics.Debugger.Break();
        }
        private static void MessagesChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            MessageView owner = (MessageView)d;

            Base.Interfaces.IMessage mess = e.NewValue as Base.Interfaces.IMessage;
            Run r = new Run();

            if (mess is Base.Interfaces.IErrorMessage)
            {
                Base.Interfaces.IErrorMessage err = mess as Base.Interfaces.IErrorMessage;
                r.Text = err.ToString();
                owner.tb.Inlines.Add(r);
                if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Severe))
                {
                    owner.tb.Inlines.Last().Foreground = owner._errorColors[5];
                }
                else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Fatal))
                {
                    owner.tb.Inlines.Last().Foreground = owner._errorColors[4];
                }
                else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Major))
                {
                    owner.tb.Inlines.Last().Foreground = owner._errorColors[3];
                }
                else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Minor))
                {
                    owner.tb.Inlines.Last().Foreground = owner._errorColors[2];
                }
                else if (err.ErrorLevel.HasFlag(Base.Enumerations.ErrorLevel.Info))
                {
                    owner.tb.Inlines.Last().Foreground = owner._errorColors[1];
                }
            }
            else
            {
                r.Text = mess.Message;
                owner.tb.Inlines.Add(r);
            }
            if (owner.tb.Inlines.Count() > owner.MessageCount)
            {
                owner.tb.Inlines.Remove(owner.tb.Inlines.First());
            }
        }