public bool Ensure()
        {
            bool changed = EnsureCulture();

            if (AlternatingColorStrings == null || !AlternatingColorStrings.Any())
            {
                AlternatingColorStrings = new ObservableCollection <string> {
                    "#FFFFFF"
                };
                changed |= true;
            }

            if (string.IsNullOrEmpty(ColumnHeaderColorString))
            {
                ColumnHeaderColorString = EMColor.LightBlue.ToString();
                changed |= true;
            }

            if (string.IsNullOrEmpty(RowHeaderColorString))
            {
                RowHeaderColorString = EMColor.LightBlue.ToString();
                changed |= true;
            }

            if (string.IsNullOrEmpty(AddedColorString))
            {
                AddedColorString = EMColor.Orange.ToString();
                changed         |= true;
            }

            if (string.IsNullOrEmpty(RemovedColorString))
            {
                RemovedColorString = EMColor.LightGray.ToString();
                changed           |= true;
            }

            if (string.IsNullOrEmpty(ModifiedColorString))
            {
                ModifiedColorString = EMColor.Orange.ToString();
                changed            |= true;
            }

            if (string.IsNullOrEmpty(ModifiedRowColorString))
            {
                ModifiedRowColorString = EMColor.PaleOrange.ToString();
                changed |= true;
            }

            foreach (var ec in ExternalCommands)
            {
                changed |= ec.Ensure();
            }

            foreach (var fs in FileSettings)
            {
                changed |= fs.Ensure();
            }

            if (string.IsNullOrEmpty(FontName))
            {
                FontName = "Arial";
                changed |= true;
            }

            if (string.IsNullOrEmpty(LogFormat))
            {
                LogFormat = Properties.Resources.DefaultLogFormat;
                changed  |= true;
            }

            if (string.IsNullOrEmpty(AddedRowLogFormat))
            {
                AddedRowLogFormat = Properties.Resources.DefaultLogFormatAddedRow;
                changed          |= true;
            }

            if (string.IsNullOrEmpty(RemovedRowLogFormat))
            {
                RemovedRowLogFormat = Properties.Resources.DefaultLogFormatRemovedRow;
                changed            |= true;
            }

            return(changed);
        }