4

Trueに渡すにはどうすればよいCommandParameterですか?

現在、私は必然的Boolean.Trueにリソース辞書に追加していますが、それは不器用な方法のようです。

4

3 に答える 3

12

コマンドパラメーターはタイプ'object'であるため、XAMLパーサーはタイプ変換を実行できません。'true'を渡すと、パーサーはこれをブール値に変換する必要があることを知る方法がありません。これは明示的に行う必要があります。プロパティ要素の構文を使用できます。

<Button>
  <Button.CommandParameter>
    <sys:Boolean>true</sys:Boolean>
  </Button.CommandParameter>
</Button>

sys namepsaceがマップされる場所:

xmlns:sys="clr-namespace:System;assembly=mscorlib"
于 2012-01-04T06:17:36.240 に答える
10

ColinEの答えは問題ありませんが、真/偽をリソースとして定義するのは少し賢明だと思います。あなたは一度だけそれをする必要があります:

<UserControl.Resources>
    <sys:Boolean x:Key="BoolTrue">True</sys:Boolean>
    <sys:Boolean x:Key="BoolFalse">False</sys:Boolean>
</UserControl.Resources>

StaticResource次に、それをCommandParameter:のとして参照できます。

<Button CommandParameter="{StaticResource BoolTrue}" />
于 2013-04-26T02:04:53.030 に答える
5

XAMLがこれに変わります。

<Button 
    Command="{Binding Path=WhateverCommand}" 
    CommandParameter="{x:Static BooleanHelper.True}" />
于 2016-06-29T07:45:54.463 に答える