如何计算 WPF 绑定中的值

2024-03-15

我有一个应用程序,它使用两个滑块来生成在代码中其他地方使用的产品。我想要的是将产品值绑定到文本块或工具提示,例如,看起来像“10 x 15 = 150”。

第一部分很简单,如下所示:

<TextBlock.Text>
    <MultiBinding StringFormat="{}{0} x {1}">
        <Binding ElementName="amount_slider" Path="Value" />
        <Binding ElementName="frequency_slider" Path="Value"/>
    </MultiBinding>
</TextBlock.Text>

但是,有什么简单的方法可以将产品放入其中呢?

使用 Pavlo Glazkov 的解决方案,我将其修改为如下所示:

public class MultiplyFormulaStringConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        var doubleValues = values.Cast<double>().ToArray();
        double x = doubleValues[0];
        double y = doubleValues[1];
        var leftPart = x.ToString() + " x " + y.ToString();
        var rightPart = (x * y).ToString();
        var result = string.Format("{0} = {1}", leftPart, rightPart);
        return result;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

还有最重要的一点

<Window.Resources>
    <local:MultiplyFormulaStringConverter x:Key="MultiplyFormulaStringConverter"/>
</Window.Resources>

Thanks!


而不是使用StringFormat创建一个转换器。像这样的事情:

public class MultiplyFormulaStringConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        var doubleValues = values.Cast<double>().ToArray();

        var leftPart = string.Join(" x ", doubleValues);

        var rightPart = doubleValues.Sum().ToString();

        var result = string.Format("{0} = {1}", leftPart, rightPart);

        return result;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

<TextBlock.Text>
    <MultiBinding Converter="{StaticResource MultiplyFormulaStringConverter}">
        <Binding ElementName="amount_slider" Path="Value" />
        <Binding ElementName="frequency_slider" Path="Value"/>
    </MultiBinding>
</TextBlock.Text>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算 WPF 绑定中的值 的相关文章

随机推荐

  • 如何使用 pydicom 创建 JPEG 压缩 DICOM 数据集?

    我正在尝试使用创建 JPEG 压缩 DICOM 图像pydicom https pydicom github io pydicom stable 可以找到有关彩色 DICOM 图像的精彩源材料here http dicomiseasy bl
  • 我可以在代码上强制执行哪些类型的模式,以便更轻松地转换为另一种编程语言? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正着手做一个业余项目 其目标是将代码从一种编程语言翻译成另一种编程语言 我开始使用的语言是 PHP 和 Python Python
  • 当我将项目导出到 jar 文件时如何包含我的图标

    我开发了一个桌面应用程序 问题是当我将应用程序导出到 jar 文件时 应用程序中未显示图标 当我从 Eclipse 运行它时 所有图标都显示在那里 我的项目的一个例子 package net ebank gui import java aw
  • PHP JSON 编码不起作用

    这是我想要编码为 JSON 的数组的 var dump array 3 0 gt array 2 From gt string 14 08 August 2013 To gt string 14 21 August 2013 1 gt ar
  • C++ 对象参数:多态性、值语义、对象生命周期?

    当我从 C 过渡到 C 时 我收到了很多关于尽可能使用值语义的建议 几乎可以保证 如果我在任何地方发布带有指针的问题 就会有人出现并建议它应该是一个值 我开始看到曙光 我在代码中发现了很多地方可以用堆栈分配的变量 通常是引用 替换动态分配和
  • python 中的图形上有很多边

    我有以下脚本 import pandas as pd from igraph import df p c pd read csv data edges csv edges list edges vertices list dict case
  • 您可以以非 root 用户身份在非特权容器中运行 DPDK 吗?

    我正在尝试在非特权 Docker 容器中运行 DPDK 虽然我可以限制容器的权限并将容器指定为非特权容器 但我仍然需要以 root 身份运行 dpdk 应用程序 例如 testpmd 我还可以以非 root 身份运行容器并使用 sudo 启
  • 将 .NET Core 2.0 Web 应用程序发布到 Azure 应用服务时出错

    我最近将 Visual Studio 2017 Community Edition 从版本 15 6 2 升级到 15 6 3 从那时起 我一直无法使用现有的发布配置文件成功将 NET Core 2 0 Web 应用程序部署到我的 Azur
  • 有什么方法可以捕获声明时常量的名称吗?

    我有课 我们称之为 SomeClass class SomeClass end 我不想以正常方式定义此类的实例 而是使用常量来定义它们 MyConstant SomeClass new 我希望能够捕获某个类设置的常量的名称 就像标准 rub
  • Webpack SASS-loader include 语句中断 SASS @import 语句

    因此 对于背景 最初我在 Webpack 配置中排除了 node modules 目录 该目录对于我的 sass import 语句运行良好 但很难包含 node modules 目录中的内容 所以我将SASS加载器切换为以下 test s
  • 获取与 URL 关联的所有 IP,Python

    我正在尝试查找与某个 URL 关联的所有 IP 我一直在使用 socket 包 但对不同功能返回的不同数量的 IP 感到困惑 例如见下文 有没有返回所有IP的函数 socket gethostbyname google com return
  • 使用Python mechanize下载文件

    我正在尝试使用 python 和 mechanize 从网站下载文件 我当前的代码成功登录网站并打开包含下载链接的页面 下载链接是 https www lendingclub com browse browseNotesRawDataV2
  • 升级到 XCode 4 后无法链接 ppc

    我跟着这些说明 https stackoverflow com questions 5333490 how can we restore ppc ppc64 as well as full 10 4 10 5 sdk support to
  • 单击 POI 时获取谷歌地图上的 placeId

    我在我的网站上使用 Google Maps JS V3 API 当用户搜索某个地点时 我可以通过 placeId 使用 getDetails 当用户单击 POI 时 我想执行相同的操作 但是 当用户单击 POI 而不是使用搜索框时 我似乎找
  • Fabric.js 子类中的颜色正在更改为黑色。

    我正在尝试子类 Fabric Group 并将 JSON 字符串加载到其中 我遇到的问题是子类组中的 Fabric Rect 的颜色正在更改为黑色 当我直接在 Fabric Group 中执行此操作时 效果很好 我一直在玩 fromObje
  • Ruby Mailer:参数数量错误

    我正在努力构建我的邮件程序 但我不断遇到 参数数量错误 0 代表 1 可以说我疯了 但我觉得我定义的一切都是正确的 控制器 为简洁起见被截断 def create cms484 Cms484 new cms484 params respon
  • scala 中的间接递归泛型类型定义

    直接类型递归就可以工作 trait TT T lt TT T 但我可以用天真的方法做间接的 trait UU V lt VV UU V trait VV U lt UU VV U 给我错误 CyclicTraits scala 23 err
  • C++ 中对外部命令的线程安全并发调用

    我一直在互联网上寻找一种方法 以线程安全的方式从我的 C 程序中并发调用外部程序 据我了解 popen system 和 fork 都不是线程安全的 在我看来 这里缺少了一些东西 到目前为止我还没有找到 是否有可能没有办法从不同线程并发调用
  • 禁用特定块的全页缓存

    我正在使用具有全页缓存功能的 magento EE 有一个动态更新的块 但我似乎无法禁用它的缓存 我想要实现的理想目标是 仅禁用特定块的缓存 以便每次页面加载时都会再次呈现它 我尝试过的事情 将 unsetData 包含到布局文件中
  • 如何计算 WPF 绑定中的值

    我有一个应用程序 它使用两个滑块来生成在代码中其他地方使用的产品 我想要的是将产品值绑定到文本块或工具提示 例如 看起来像 10 x 15 150 第一部分很简单 如下所示