は、多くの場合、ここで答えを見つけましたが、今の私の最初の時間をそれ `s;)ボタン:ClickMode値(プレス/リリース)に応じて、異なるDelegateCommandsバインディング
我々はDelegateCommandsと一緒にMVVMパターンを使用します。だから、通常私はこのようなボタンにコマンドをバインドします
<Button Command="{Binding SetXYZActivatedCommand}" />
私はボタンが押されたときに、ボタンが再び解放されたときに別のコマンドを実行する必要があります。私の考えは以下の通りであった:
<Button Grid.Row="3" x:Name="TestButtonObj" Content="asdlknm">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" CornerRadius="80" Background="LightBlue">
<ContentPresenter Name="content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="border" Property="Background" Value="Aqua" />
<Setter TargetName="content" Property="Content" Value="Pressed" />
</Trigger>
<Trigger Property="ClickMode" Value="Press">
<Setter TargetName="TestButtonObj" Property="Command" Value="{Binding SetPttDeactivatedCommand}" />
</Trigger>
<Trigger Property="ClickMode" Value="Release">
<Setter Property="Button.Command" Value="{Binding SetPttActivatedCommand}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
問題はTestButtonObjが不明であることです。私は受け入れました、私は親オブジェクトにアクセスすることはできません。 Without TargetName = "TestButtonObj"コンパイルされますが、コマンドは実行されません。 Mhhhh ...これで
<Button Grid.Row="2" Content="CommandBindings">
<Button.CommandBindings>
<CommandBinding Command="{Binding SetPttActivatedCommand}" />
</Button.CommandBindings>
(うまくいけば、あなたがこの迷路の外に私を得る)いるCommandBindingは、依存関係プロパティではありません...
[OK]を、私は次のことを試してみましたが、それが動作することはできません私がついたポイント。私は方法が完全に間違っていたかどうかはわかりません。私はコマンドとバインディングについての一日のドキュメントを読んだが、私は手がかりを得ていない。誰かが私に道を見せてくれることを願っています。
私は今朝もまたここに投稿しました: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/cc68b10c-4e1c-4344-9f00-710185d4b1b0 回答が得られたら、私もここに投稿します。
は
おかげさまで、うまくいけば、明日私はもう少し調査する時間があります...私はライセンス情報を見たことがありません:私たちはそれを使うことができますか?商用アプリでは? – TottiW
私はライセンスがあるとは思わない。著者は次のように述べています。「このコードはテストされておらず、バグなどが予想されます。生産コードでこれを使用する場合は、自己責任で実行してください」 –
最終目標は何かわかりませんがボタンが押されている間だけアクションを実行する必要がある場合は、ReapeatButtonを見て、クリックされている限り、クリックイベントを連続的に発生させます。 –