private void TraceEventCore(TraceEventType eventType, DataGridTraceEventId eventId, string message, IEnumerable <DataGridTraceArg> args)
        {
            var format = DataGridTraceSource.Format(args);

            if (string.IsNullOrEmpty(message))
            {
                if (string.IsNullOrEmpty(format))
                {
                    DataGridTraceSource.TraceEvent(m_traceSource, eventType, ( int )eventId, null);
                }
                else
                {
                    DataGridTraceSource.TraceEvent(m_traceSource, eventType, ( int )eventId, format);
                }
            }
            else
            {
                if (string.IsNullOrEmpty(format))
                {
                    DataGridTraceSource.TraceEvent(m_traceSource, eventType, ( int )eventId, message);
                }
                else
                {
                    DataGridTraceSource.TraceEvent(m_traceSource, eventType, ( int )eventId, message + " | " + format);
                }
            }
        }
            internal TraceBlockEndDisposable(DataGridTraceSource owner, DataGridTraceEventId eventId, string message, IEnumerable <DataGridTraceArg> args)
            {
                if (owner == null)
                {
                    throw new ArgumentNullException("owner");
                }

                m_owner   = owner;
                m_eventId = eventId;
                m_message = message;
                m_args    = args;
            }