WPF динамически создает формулу в TextBox - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю над проектом, в котором у пользователя должна быть возможность создать формулу в приложении WPF.Формула должна быть сделана из некоторого properties.Допустим, у нас есть properties:

public decimal? Prop1 { get; set; }
public decimal? Prop2 { get; set; }
public decimal? Prop3 { get; set; }

Теперь, скажем, у нас есть TextBox, где пользователь должен иметь возможность вводить только эти properties, а между ними должно бытьнекоторые из операторов: +, -, /, *.

Я получил часть, где пользователь может вводить только эти значения properties и операторы ... Но моя проблема заключается в том, как я могу сохранить эту формулу в SQL database (скажем, Prop1 * Prop2), как я могу получить формулу из database и заставить ее читать значения из и в основном "делать математику ..."

decimal? x = MyFormula;

Я знаювопрос сложный, так же как и мое описание этого вопроса… Пожалуйста, не стесняйтесь спрашивать более подробную информацию, если это необходимо, и я постараюсь объяснить это.

1 Ответ

0 голосов
/ 07 декабря 2018

Там есть два разных вопроса, и они оба немного открытые.

Мое предложение для вашего первого вопроса - сериализовать Model / ViewModel в строку.Вы можете обнаружить, что хотите хранить их немного по-другому.Например:

public class Property
{
    public string PropReference{get;set;}
}

public class Operator
{
    public string Operator{get;set;}
}

public class Calculation
{
    public Property Prop {get;set;}
    public Operator Op {get;set;}
    public Property Prop2 {get;set;}
}

Таким образом, вы можете связать их вместе и даже вложить их.Отвечая на ваш второй вопрос, вы, возможно, захотите исследовать такую ​​библиотеку, как Jace , поскольку это не простая проблема, но она уже решена.

EDIT - Альтернативное решение на основе решенияпо комментариям:

public class Operator : IAction
{
    public string Operator {get;set;}
}

public class Calculation : IAction
{
    IList<KeyValuePair<IAction, Property>> Operations {get;set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...