gpt4 book ai didi

具有简单算术运算的 WPF DataBinding?

转载 作者:行者123 更新时间:2023-12-03 15:21:16 28 4
gpt4 key购买 nike

我想在传入的绑定(bind)整数上添加一个常量值。事实上,我有几个地方想要绑定(bind)到相同的源值但添加不同的常量。所以理想的解决方案是这样的......

<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myInt, Constant=5}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myInt, Constant=8}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myInt, Constant=24}"/>

(注意:这是一个展示这个想法的例子,我的实际绑定(bind)场景不是TextBox的canvas属性。但这更清楚地展示了这个想法)

目前,我能想到的唯一解决方案是公开许多不同的源属性,每个属性都将不同的常量添加到相同的内部值。所以我可以做这样的事情......
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myIntPlus5}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myIntPlus8}"/>
<TextBox Canvas.Top="{Binding ElementName=mySource, Path=myIntPlus24}"/>

但这非常严峻,因为将来我可能需要继续为新常量添加新属性。此外,如果我需要更改添加的值,我需要更改源对象,这很糟糕。

一定有比这更通用的方法吗?任何 WPF 专家有任何想法吗?

最佳答案

我使用 MathConverter我创建它是为了进行所有简单的算术运算。转换器的代码是 here它可以像这样使用:

<TextBox Canvas.Top="{Binding SomeValue, 
Converter={StaticResource MathConverter},
ConverterParameter=@VALUE+5}" />

您甚至可以将它与更高级的算术运算一起使用,例如
Width="{Binding ElementName=RootWindow, Path=ActualWidth,
Converter={StaticResource MathConverter},
ConverterParameter=((@VALUE-200)*.3)}"

关于具有简单算术运算的 WPF DataBinding?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/125536/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com