void fillDialectByType(odm.ui.controls.FilterExpression.ftype tp)
        {
            DialectsDictionary.Clear();
            switch (tp)
            {
            case FilterExpression.ftype.CONTENT:
                arguments.messageContentFilterDialects.ForEach(item => {
                    string name = item;
                    try {
                        name = item.Split('/').Last();
                    } catch (Exception err) {
                        dbg.Error(err);
                    }
                    DialectsDictionary.Add(new KeyValuePair <string, string>(item, name));
                });
                break;

            default:
                arguments.topicExpressionDialects.ForEach(item => {
                    string name = item;
                    try {
                        name = item.Split('/').Last();
                    } catch (Exception err) {
                        dbg.Error(err);
                    }
                    DialectsDictionary.Add(new KeyValuePair <string, string>(item, name));
                });
                break;
            }
        }
        void FillExpressionTypeDialect(FilterExpression filter)
        {
            var tp = filter.FilterType;

            DialectsDictionary.Clear();

            FilterExpression.filterTypeNames.ForEach(x => {
                if (x.Key == tp)
                {
                    valueExpressionType.SelectedItem = x;
                }
            });

            if (valueExpressionType.SelectedItem != null)
            {
                fillDialectByType(filter.FilterType);
                if (filter.Dialect != null)
                {
                    DialectsDictionary.ForEach(d => {
                        if (d.Key == filter.Dialect)
                        {
                            valueExpressionDialect.SelectedItem = d;
                        }
                    });
                }
            }
        }
        void InitExpressionDialect()
        {
            if (valueExpressionType.SelectedItem == null)
            {
                return;
            }
            var tp = ((KeyValuePair <odm.ui.controls.FilterExpression.ftype, string>)valueExpressionType.SelectedItem).Key;

            DialectsDictionary.Clear();

            fillDialectByType(tp);
        }