首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XAML中的布尔CommandParameter

XAML中的布尔CommandParameter
EN

Stack Overflow用户
提问于 2011-02-15 05:24:59
回答 6查看 59K关注 0票数 83

我有这样的代码(它工作得很好):

代码语言:javascript
复制
<KeyBinding Key="Enter" Command="{Binding ReturnResultCommand}">
    <KeyBinding.CommandParameter>
        <s:Boolean>
            True
        </s:Boolean>
    </KeyBinding.CommandParameter>
</KeyBinding>

其中"s“当然是系统名称空间。

但是这个命令被调用了很多次,它实际上膨胀了非常简单的XAML代码。这真的是XAML中布尔命令参数的最短表示法(除了将命令拆分为几个命令之外)吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-15 05:48:09

这可能有点麻烦,但您可以从KeyBinding类派生:

代码语言:javascript
复制
public class BoolKeyBinding : KeyBinding
{
    public bool Parameter
    {
        get { return (bool)CommandParameter; }
        set { CommandParameter = value; }
    }
}

用法:

代码语言:javascript
复制
<local:BoolKeyBinding ... Parameter="True"/>

和另一个不是很奇怪的解决方案:

代码语言:javascript
复制
xmlns:s="clr-namespace:System;assembly=mscorlib"
代码语言:javascript
复制
<Application.Resources>
    <!-- ... -->
    <s:Boolean x:Key="True">True</s:Boolean>
    <s:Boolean x:Key="False">False</s:Boolean>
</Application.Resources>

用法:

代码语言:javascript
复制
<KeyBinding ... CommandParameter="{StaticResource True}"/>
票数 117
EN

Stack Overflow用户

发布于 2012-11-10 01:47:26

最简单的方法是在参考资料中定义以下内容

代码语言:javascript
复制
<System:Boolean x:Key="FalseValue">False</System:Boolean>
<System:Boolean x:Key="TrueValue">True</System:Boolean>

并像这样使用它:

代码语言:javascript
复制
<Button CommandParameter="{StaticResource FalseValue}"/>
票数 70
EN

Stack Overflow用户

发布于 2014-08-29 18:53:49

或者,也许是这样:

代码语言:javascript
复制
<Button.CommandParameter>
    <s:Boolean>True</s:Boolean>
</Button.CommandParameter>

其中s是命名空间:

代码语言:javascript
复制
 xmlns:s="clr-namespace:System;assembly=mscorlib"
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4997446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档