2011-07-13 13 views
0

UserControlを作成し、それにコマンドをバインドする良い例がありますか?RelayCommandを使用したMVVMのSilverlight UserControl <T> - example?

私の問題は、たとえば、TreeViewのDropイベントに、UserControlのコントロールにコマンドを転送することです。それは明らかではない、どうすればいいのだろうか。コントロールは2が含まれてい

<my:MyControl Command="{Binding XCommand}" CommandParameter="{Binding [Here what?]}"/> 

用法:


どちらの答えは、私はそのような何かをしたい

興味深く、感謝、彼らは助けるが、... DependencyProperties、Command、CommandParametersの2つのDependecyPropertiesをTreeView - Dropイベントにバインドしたいと思います。どうやってやるの? CommandParameterの使用が逆転しているので:しない制御パラメータを渡しますが、ユーザーが何かを望んでいる:CommandParameter =「{バインディングテキスト、のElementName = DisableCommandTextBox}」

答えて

1

残念ながら、我々はのviewmodel内RelayCommandをバインドすることはできませんTreeViewの制限によりDropイベントに直接的に影響します。

ただし、この問題はこれまでに解決されています。それがどのように行われたかを見るにはlinkを見てください。より一般的なコマンドバインディングの例を(おそらくボタンに)したい場合は、下にコメントを残しておきます。

2

あなたのビューモデルにイベントを転送しようとしています。 RelayCommandは必要ありませんが、EventToCommandが必要です。私は、ツリービューのイベントをバインドすることについては知らないが、いつでも試してみることができます。 MVVMライトを使用して

例: http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx

<Rectangle Fill="White" 
      Stroke="Black" 
      Width="200" 
      Height="100"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="MouseEnter"> 
      <cmd:EventToCommand Command="{Binding TestCommand, 
              Mode=OneWay}" 
       CommandParameter="{Binding Text, 
            ElementName=MyTextBox, 
            Mode=OneWay}" 
       MustToggleIsEnabledValue="True" /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</Rectangle> 
0

私はちょうどCommandParameterを残していた、と私はappropiateパラメータを持つSelectedItemChangedイベントハンドラでコマンドを呼び出します。

関連する問題