0

UserControlを作成し、それにコマンドをバインドする良い例はありますか?

私の問題は、コマンドをUserControlのコントロール、たとえばTreeViewのDropイベントに転送することです。はっきりしていませんが、どうすればそれができますか。


どちらの答えも興味深いものであり、感謝しています。

私はそのようなものが欲しい:

使用法:

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

コントロールには、CommandとCommandParametersの2つのDependencyPropertiesが含まれており、これら2つのDependecyPropertiesをTreeView-Dropイベントにバインドしたいと思います。どうやってやるの?CommandParameterの使用法が逆になっているため、コントロールはパラメーターを渡しませんが、ユーザーは何かを求めています:CommandParameter = "{Binding Text、ElementName = DisableCommandTextBox}"

4

3 に答える 3

2

イベントをビューモデルに転送しようとしています。RelayCommandは必要ないと思いますが、EventToCommandが必要になります。ツリービューイベントのバインドについてはわかりませんが、いつでも試してみることができます。

MVVM Lightの使用例: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>
于 2011-07-13T15:02:38.143 に答える
1

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

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

于 2011-07-13T14:56:49.713 に答える
0

CommandParameter をそのままにしておく必要があり、SelectedItemChanged イベント ハンドラーで適切なパラメーターを指定してコマンドを呼び出します。

于 2011-07-15T09:00:26.970 に答える