我想给用户一个可以设置价格的文本框,如下所示:
" [数量] * 0.15 + 5"
这将导致10个单位的价格为6.50(数量= 10)。或者另一个例子:
"如果(Date.month大于10; [数量] * 0.15 + 5; [数量] * 0.15 + 0)"
从11月到12月的价格将与今年剩余时间不同。
这些只是示例 - 我想要实现的是根据变量设定价格规则的大量可能性,包括计算。
我想知道如何在c#中实现这一点。有没有办法解释在运行时写入文本框的代码?
答案 0 :(得分:1)
你需要的是一个可嵌入的脚本引擎。我强烈建议Jint。它是一个非常友好的javascript引擎。您将为其提供参数(数量,日期,示例中的数量)和要执行的文本,它将返回asnwer
答案 1 :(得分:0)
我在移动设备上,所以我无法举一个例子,但是,如果不嵌入一个完整的脚本引擎(可能有点过分),只需使用事件处理程序即可。
有一个数量的文本框和价格的文本框(可能只是一个标签)。为Quantity文本框实现一个事件处理程序,可能会丢失焦点。在处理程序中,获取Quantity值,验证它(是一个整数等),进行计算并使用值更新Price文本框/标签。
这可以轻松扩展,也可以在日期文本框中查找值。
您甚至可以使用绑定到Price项的BindingList的DataGridView来实现这一点,这样只要行中的任何单元格发生更改,价格就会更新。