Руководство потребности к оценочному дереву булевой логики

Я не знаю, возможно ли это в XAML-только, но попробуйте следующее:

Дают Вашему ComboBox имя, таким образом, можно получить доступ к нему в codebehind: "typesComboBox1"

Теперь пробует следующий

typesComboBox1.ItemsSource = Enum.GetValues(typeof(ExampleEnum));
8
задан JTtheGeek 2 December 2009 в 23:53
поделиться

5 ответов

Ваш синтаксический анализ выражения ((Пол == Мужской И Возраст == 25) ИЛИ (Пол == Женский И Статус == Холост)) И IQ> 120 выглядит странным. Я бы проанализировал это так:

* And
    * Or
        * And
            * ==
                * Sex
                * Male
            * ==
                * Eyes
                * Blue
        * And
            * ==
                * Sex
                * Female
            * ==
                * Status
                * Single
    * >
        * IQ
        * 120

Тип дерева будет:

Node
{
    bool evaluate ()
}

AndNode : Node
{
    Node left
    Node right

    bool evaluate ()
    {
        return left.evaluate () && right.evaluate ()
    }
}

// OrNode is similar

EqualsNode : Node
{
    Field field
    Value value

    bool evaluate ()
    {
        return field.value () == value
    }
}

// Likewise for <, >, etc
1
ответ дан 6 December 2019 в 00:57
поделиться

Запросы такого типа часто представляются в виде массива ИЛИ , состоящего из предложений И . То есть табличный формат, в котором вы читаете несколько условий И вместе, а затем читаете их до ИЛИ . Это приводит к некоторому повторению условий, но пользователям легко читать, писать и понимать. Ваш образец ((Пол == Мужской И Возраст == 25) ИЛИ (Пол == Женский И Статус == Холост)) И IQ> 120 будет выглядеть как

Sex == Male   & Age == 25        & IQ > 120 
Sex == Female & Status == Single & IQ > 120 
1
ответ дан 6 December 2019 в 00:57
поделиться

Вы можете запросить в Google такие термины, как «исчисление предикатов» и «конъюнктивная нормальная форма».

1
ответ дан 6 December 2019 в 00:57
поделиться

Sounds like you need to create a user interface that allows the creation of a simple parse tree. When the presses GO you can then walk the tree and create a LINQ expression tree from that user interface structure. Execute the LINQ query and then process the results as needed. I would therefore recommend you read up on LINQ expression trees.

0
ответ дан 6 December 2019 в 00:57
поделиться

Я должен сказать, что именно поэтому создаются механизмы баз данных. Вы можете делать все, что вам нужно, с помощью заданной логики, и вы можете даже прийти к желаемому результату, но это стандартные проблемы, решаемые базами данных и SQL. Вы также можете найти в linq решение в коде.

0
ответ дан 6 December 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: