private void Expression_TextChanged(object sender, TextChangedEventArgs e)
        {
            _expression.Pattern = Expression.Text;
            bool parsed = _expression.Parse();

            ErrorInfos.Visibility = System.Windows.Visibility.Collapsed;
            ErrorInfos.Text       = _expression.ParserError;
            if (!parsed)
            {
                ErrorInfos.Visibility = System.Windows.Visibility.Visible;
                return;
            }
            try
            {
                bool linked = _expression.Link();
                if (!linked)
                {
                    StringBuilder builder = new StringBuilder();
                    foreach (LinkErrorInfo info in _expression.Errors)
                    {
                        builder.Append(info.ToString()).Append(';');
                    }
                    ErrorInfos.Text       = builder.ToString();
                    ErrorInfos.Visibility = System.Windows.Visibility.Visible;
                }
            }
            catch (Exception ex)
            {
                ErrorInfos.Visibility = System.Windows.Visibility.Visible;
                ErrorInfos.Text       = ex.Message;
            }
        }