2

私はMVVMパターンを使用しており、次のコードがあります。

<DataTemplate x:Key="ActivityEditTemplate">
        <ItemsControl ItemsSource="{Binding Path=ActivityList}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>                       
                    <CheckBox Margin="2,0,2,0" Content="{Binding ActivityDescription}" IsChecked="{Binding IsSelected}" Command="vm:PatternViewModel.ActivityCommand" CommandParameter="{Binding ActivityTitle}">
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </DataTemplate>

ItemsControl内のチェックボックスは、複数選択を許可する必要があります。ルーティングされたコマンドがあり、チェックボックスで簡単に実装できますが、アイテムコントロールが折りたたまれている場合にのみコマンドを実行したいと思います。datatemplateは、WPFデータグリッド内のCellEditingTemplateの静的リソースです。コードにMVVMパターンを採用したいのですが。運が悪かったので、マウスの脱退イベントがコマンドを呼び出すと考えました。前もって感謝します。

4

1 に答える 1

0

私は WPF の専門家ではないので、あなたの質問を間違った方法で読むかもしれません。

しかし、私はこれを読んだだけです:

ビュー内のコントロールを、ビュー モデルによって公開されるコマンド オブジェクトに関連付ける別の方法があります。Command プロパティを介して実際にコマンドにバインドできるコントロールは、特に System.Windows.Controls.Primitives.ButtonBase または System.Windows.Controls.MenuItem から派生したものだけです。コマンドを他のコントロールにアタッチする場合、またはボタンのクリック イベント以外のイベントでコマンドを呼び出す場合は、Expression Blend インタラクション トリガーと System.Windows.Interactivity.InvokeCommandAction クラスを使用できます。

ソース: blog.magnusmontin.net

Event Triggers をチェックしてみてください。

于 2017-07-20T15:06:04.427 に答える