gpt4 book ai didi

c# - 用于条件转换的 IValueConverter 参数

转载 作者:行者123 更新时间:2023-11-30 17:07:50 24 4
gpt4 key购买 nike

我有一个带有文本框的表单(默认情况下)采用十进制值。不幸的是,业务规则规定它们也可以采用百分比值(实际上是一样的,只是乘以 100)。为了确保将正确的值插入到数据库中(例如,如果受访者输入了 95,我希望它变成 .95),我在相关文本框旁边添加了复选框,用户可以选择这些复选框以指示该值为百分比,不是小数。要在小数和百分比之间切换值以供将来显示、报告等,我正在尝试使用 IValueConverter。

我创建了一个转换器,将字段值相乘以将其显示为百分比,并且(虽然我还没有进行测试)应该在保存时将该显示值重新转换回小数。

我遇到的问题是让转换器仅在选中复选框的情况下工作。从我所有的阅读来看,最有可能做到这一点的方法似乎是使用复选框值作为 IValueConverter 的参数,但我不知道该怎么做。

所以,我的问题是:我如何(甚至可以)使用位于 TextBox 旁边的 Checkbox 中的 Checkbox.IsChecked 值作为 IValueConverter 的参数来确定是否对TextBox 文本进行转换?问题是如何识别与正在转换的文本框相关的复选框以及如何将其值作为 IValueConverter 的参数传递

我试着看这里:How can I pass a reference to another control as an IValueConverter parameter? , 但它有点令人沮丧。

提前致谢。

最佳答案

不幸的是,您不能在 ConverterParameter 上使用 Binding,但您可以使用 IMultiValueConverter为了这个任务。

你会像这样使用它

<TextBlock.Text>
<MultiBinding Converter="{StaticResource YourConverter}">
<Binding Path="YourDecimalProperty"/>
<Binding Path="IsChecked" ElementName="YourCheckBoxName" />
</MultiBinding>
</TextBlock.Text>

关于c# - 用于条件转换的 IValueConverter 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14252922/

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