Silverlight:如何将True传递给CommandParameter?

Jon*_*len 4 silverlight command commandparameter

我怎么True转到CommandParameter

目前我势在必须添加Boolean.True到资源字典中,但这似乎是一种笨拙的方式.

Col*_*inE 11

由于命令参数的类型为"object",因此XAML解析器无法为您执行类型转换.如果传递'true',解析器无法知道您希望将其转换为布尔值.你必须明确地这样做.您可以使用property元素语法:

<Button>
  <Button.CommandParameter>
    <sys:Boolean>true</sys:Boolean>
  </Button.CommandParameter>
</Button>
Run Code Online (Sandbox Code Playgroud)

sys namepsace映射的位置:

xmlns:sys="clr-namespace:System;assembly=mscorlib"
Run Code Online (Sandbox Code Playgroud)


McG*_*gle 10

ColinE的答案很好,但我认为将真/假定义为资源有点整洁.你只需要这样做一次:

<UserControl.Resources>
    <sys:Boolean x:Key="BoolTrue">True</sys:Boolean>
    <sys:Boolean x:Key="BoolFalse">False</sys:Boolean>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

然后,你可以参考它作为一个StaticResourceCommandParameter:

<Button CommandParameter="{StaticResource BoolTrue}" />
Run Code Online (Sandbox Code Playgroud)


Mey*_*ini 5

您的 XAML 对此进行了更改。

<Button 
    Command="{Binding Path=WhateverCommand}" 
    CommandParameter="{x:Static BooleanHelper.True}" />
Run Code Online (Sandbox Code Playgroud)