如何将True
传递给CommandParameter
?
目前我正在强制将Boolean.True
添加到资源字典中,但这似乎是一种笨拙的方式。
答案 0 :(得分:11)
由于命令参数的类型为“object”,因此XAML解析器无法为您执行类型转换。如果传递'true',解析器无法知道您希望将其转换为布尔值。你必须明确地这样做。您可以使用属性元素语法:
<Button>
<Button.CommandParameter>
<sys:Boolean>true</sys:Boolean>
</Button.CommandParameter>
</Button>
sys namepsace的映射位置:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
答案 1 :(得分:10)
ColinE的答案很好,但我认为将真/假定义为资源有点整洁。你只需要这样做一次:
<UserControl.Resources>
<sys:Boolean x:Key="BoolTrue">True</sys:Boolean>
<sys:Boolean x:Key="BoolFalse">False</sys:Boolean>
</UserControl.Resources>
然后,您可以将其引用为StaticResource
的{{1}}:
CommandParameter
答案 2 :(得分:1)
您的XAML更改为此。
android:layout_marginBottom="?attr/actionBarSize"