WPF CommandParameter MultiBinding 值 null

2023-11-21

我只是想将两个控件绑定为命令参数并将它们作为命令传递到我的命令中object[].

XAML:

<UserControl.Resources>
        <C:MultiValueConverter x:Key="MultiParamConverter"></C:MultiValueConverter>
    </UserControl.Resources>

    <StackPanel Orientation="Vertical">
        <StackPanel Orientation="Horizontal">
            <Button Name="Expander" Content="+" Width="25" Margin="4,0,4,0" Command="{Binding ExpanderCommand}">
                <Button.CommandParameter>
                    <MultiBinding Converter="{StaticResource MultiParamConverter}">
                        <Binding ElementName="Content"/>
                        <Binding ElementName="Expander"/>
                    </MultiBinding>
                </Button.CommandParameter>
            </Button>
            <Label FontWeight="Bold">GENERAL INFORMATION</Label>
        </StackPanel>
        <StackPanel Name="Content" Orientation="Vertical" Visibility="Collapsed">
            <Label>Test</Label>
        </StackPanel>
    </StackPanel>

Command:

public ICommand ExpanderCommand
        {
            get
            {
                return new RelayCommand(delegate(object param)
                    {
                        var args = (object[])param;
                        var content = (UIElement)args[0];
                        var button = (Button)args[1];
                        content.Visibility = (content.Visibility == Visibility.Visible) ? Visibility.Collapsed : Visibility.Visible;
                        button.Content = (content.Visibility == Visibility.Visible) ? "-" : "+";
                    });
            }
        }

转换器:

public class MultiValueConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return values;
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException("No two way conversion, one way binding only.");
        }
    }

基本上发生的事情是绑定似乎工作正常并且转换器返回一个object[]包含正确的值,但是当命令执行时,参数是object[]包含相同数量的元素,除了它们null.

有人可以告诉我为什么价值观object[]参数被设置为null?

谢谢, 亚历克斯.


这会做到这一点:

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
    return values.ToArray();
}

看看这个question的解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF CommandParameter MultiBinding 值 null 的相关文章

  • 与 MinGW 的静态和动态/共享链接

    我想从一个简单的链接用法开始来解释我的问题 假设有一个图书馆z它可以编译为共享库 libz dll D libs z shared libz dll 或静态库 libz a D libs z static libz a 让我想要链接它 然后
  • 非模板函数中的尾随返回类型[重复]

    这个问题在这里已经有答案了 我见过有人使用以下语法来实现函数 auto get next gt int 代替 int get next 我理解两者 并且我知道尾随返回类型语法对于使用 decltype 的模板代码很有用 就我个人而言 我会避
  • 如何从经过身份验证的 SecurityToken 中获取声明

    我将令牌作为字符串传递到 SOAP 服务中 并验证了该令牌是否有效 我现在有一个 SecurityToken 在调试模式下我可以看到所有声明 特别是我想传递到另一个方法的 userId 声明 我似乎不知道如何获得这些索赔 现在 我解码了令牌
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 获取列表框中视图中的项目

    我有一个 ListBox 其属性 VirtualizingStackPanel VirtualizationMode 设置为 回收 我正在绑定一个自定义集合 实现IList and IList
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • 如何从 Powerpoint 2010 导出电影?

    如何使用 MS Office PIA 主互操作程序集 或其他方式以编程方式将嵌入视频从 powerpoint 2010 导出到外部文件 在演示文稿中嵌入视频是 Powerpoint 2010 中的一项新功能 我找不到解决方案 PPTX 文件
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • 使用任一默认捕获模式时,这是通过复制捕获还是 (*this) 通过引用捕获?是一样的吗?

    当我看到以下工作时我有点困惑 struct A void g void f g 但后来我发现this https stackoverflow com a 16323119 5825294答案非常详细地解释了它是如何工作的 本质上 它归结为t
  • 如何在VS2005中使用从.bat而不是.exe启动的外部程序进行调试?

    在我的 c 项目的调试属性中 我选择了 启动外部程序 并选择了我希望将调试器附加到的程序的 exe 但是 现在我需要从 bat 文件而不是 exe 启动程序 但 VS2005 似乎不允许这样做 这可能吗 编辑 为了澄清 我需要调试从 bat
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • Clang 5.0 上的 vsprintf 和 vsnprintf [-Wformat-nonliteral] 警告

    我有这段代码 static void err doit int errnoflag int level const char fmt va list ap int errno save unsigned long n char buf MA
  • 在 Visual Studio 2012 Express 中设置 C++ 调试环境

    我需要调试的应用程序需要设置环境变量 这在 Visual Studio 2012 中似乎非常复杂 我想做类似的事情 set path c foo c bar c windows c program files application set
  • g++ / gcc 是否支持 C++20 新的atomic_flag 功能?

    根据参考参数 https en cppreference com w cpp atomic atomic flag c 20 有丰富的 对我来说有用的 支持atomic flag运营 然而 目前尚不清楚 gcc 是否支持这些功能 它们在任何
  • 使用未命名命名空间而不是静态命名空间

    我可以假设在未命名命名空间中声明的对象相当于static namespace int x 1 static int x 2 FWIK 在这两种情况下 x将具有静态存储期限和内部链接 声明为的对象的所有规则也是如此static适用于未命名名称
  • 让 Windows 尝试读取文件

    我正在对 Windows 文件系统进行某种封装 当用户请求打开文件时 Windows 调用我的驱动程序来提供数据 在正常操作中 驱动程序返回缓存的文件内容 但是 在某些情况下 实际文件没有缓存 我需要从网络下载它 问题是是否有可能让 Win
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗
  • 如何使用 Microsoft Graph API 更新 MailboxSettings

    我想从不同的日历更新邮箱设置 如何构建可以通过 Microsoft Graph 更新 MailboxSetting 的请求 这是我的代码示例 但有例外 代码示例 User obj GraphServiceClient Users roomC

随机推荐

  • 将字典转换为列表? [复制]

    这个问题在这里已经有答案了 我正在尝试将 Python 字典转换为 Python 列表 以便执行一些计算 My dictionary dict dict Capital London dict Food Fish Chips dict 20
  • 对可能包含数字的字符串进行排序

    我需要编写一个 Java Comparator 类来比较字符串 但有一个变化 如果要比较的两个字符串的开头和结尾相同 并且中间不同的部分是整数 则根据这些整数的数值进行比较 例如 我希望以下字符串按照显示顺序结束 aaa BBB 3 CCC
  • datagridview中的按钮点击事件

    我在 datagridview 中有一个按钮单元格 单击该按钮时 另一个 datagridview 应该可见 对于按钮列中的每个按钮单击 新 datagridview 中的数据应该有所不同 我不知道如何实现按钮单击事件每行都不同 请帮助我编
  • 如何在 Laravel 构建器上执行“解释选择”

    我知道我可以从查询日志中获取原始查询 粘贴所有绑定变量 也在查询日志中找到 拍打explain在查询的前面 直接在mysql控制台中运行它来获取查询的解释 但是有没有更快的方法来获取解释 理想情况下 我想做这样的事情 query User
  • 有没有办法将验证作为 Warp 中过滤器的一部分进行?

    我定义了一条路线和一个端点函数 我还注入了一些依赖项 pub fn route1 gt BoxedFilter lt String ParamType gt warp get and warp path param and warp fil
  • 从另一个脚本调用 python 单元测试并导出所有错误消息

    抱歉问这个基本问题 我已经使用单元测试方法在一个脚本中检查我的模型 现在 我的问题是如何从另一个文件调用此脚本并保存测试结果 下面是我的代码示例 model test py import unittest import model eq s
  • Java:FileOutputStream(“NUL:”)在 Java 升级后不起作用

    在 Windows 上 NUL 是空输出设备 类似于 Linux 上的 dev null 使用 Oracle Java 8更新331 试图得到一个new FileOutputStream NUL 抛出异常 以前 Java 8u321 它工作
  • 为什么在浏览器中输入相同的代码时,Applescript 中的“do javascript”调用不执行?

    我试图弄清楚为什么当在 Safari 地址栏中输入相同的 javascript 代码有效时 我的 Applescript 不执行任何操作 转到搜索结果页面 例如 http www google com search q test 为了获得正
  • TRY/CATCH_ALL 与 try/catch

    我使用 C 一段时间了 并且熟悉正常的 try catch 然而 我现在发现自己在 Windows 上使用 VisualStudio 进行 COM 开发编码 代码的几个部分使用了以下内容 TRY do stuff CATCH ALL e i
  • 在目标 c 中声明浮点数

    我是新来的Objective C我在整体上遇到了麻烦nonatomic strong weak等等 我想知道使用时是否会遇到任何问题Core Data with float值的定义如下 property nonatomic float ra
  • 如何通过 MediaRecorder 将持续时间添加到文件记录器的元数据

    我正在录制视频媒体记录器在 Chrome 中 我的代码类似于MediaStream 文档中的示例 我收到的视频没有Duration元数据 我通过比较它mediainfo示例 webm 文件来自 https file examples com
  • 当中断发生时,x86架构中会发生什么?

    我正在研究x86和实时系统 我有一个问题 那就是 x86 遵循哪些步骤来处理任何中断 当中断发生时 CPU 会执行以下操作 将当前地址 指令指针的内容 压入堆栈 另外 推送处理器标志 但不是所有其他处理器寄存器 跳转到ISR 中断服务例程
  • R闪亮应用程序中使用shiny.router和navbarPage进行URI路由

    我想用shiny router创建指向闪亮应用程序选项卡的可共享链接 该应用程序使用navbarPage and tabPanel 这是不起作用的可重现示例 library shiny library shiny router page 1
  • 在 C 中进行堆栈操作而不使用内联汇编[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我一直在准备编码比赛 并在互联网上遇到了这个问题 include
  • builtins.TypeError:必须是 str,而不是 bytes

    我已将脚本从 Python 2 7 转换为 3 2 但有一个错误 coding utf 8 import time from datetime import date from lxml import etree from collecti
  • 在 cshtml razor 视图中分离 JavaScript

    我是 ASP NET MVC3 的新手 我正在尝试弄清楚如何将 JavaScript 包含 C 与 HTML 的其余部分分开 如果我将它们放入 JS 文件中并使用脚本标记插入它们 那么它们的 C 方面将停止工作 在 MVC 3 razor
  • 如何使用java填写Excel文件

    我有以下代码来填写Excel文件 我使用 Jsoup 从互联网上获得的信息 package knvbj import java io FileInputStream import java io FileOutputStream impor
  • CSS 转换在 Edge 中不起作用

    我陷入了以下问题 On 我创建的这个网站 我有一个位于页面底部的画廊 如果我将鼠标悬停在拇指上 它们会疯狂地飞来飞去 这不是我想要的 它在其他浏览器上的工作方式就像一个魅力 仅 Microsoft Edge 受到影响 有人可以帮助我让图像达
  • 任何关于免费互联网时间网络服务的参考

    我需要获取有关我的申请的日期和时间的实时信息 仅供参考 我为电视开发了一个应用程序 因此没有像我们从 new Date 获得的可靠的本地机器时间 我使用javascript进行开发 我的计划是从服务器获取时间 但我没有这个项目的服务器 所以
  • WPF CommandParameter MultiBinding 值 null

    我只是想将两个控件绑定为命令参数并将它们作为命令传递到我的命令中object XAML