Как добавить привязку команды к элементу управления Items, который не имеет свойства привязки команды - PullRequest
2 голосов
/ 16 ноября 2009

Я использую шаблон 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 должен разрешить множественный выбор. У меня есть перенаправленная команда, и я могу легко реализовать ее на флажке, однако я хочу, чтобы команда выполнялась только тогда, когда элемент управления свернут Шаблон данных представляет собой статический ресурс CellEditingTemplate в сетке данных WPF. Я хотел бы, чтобы код все еще принимал образец MVVM. Я считал, что событие отпускания мыши вызывает команду, но не повезло. Заранее спасибо.

1 Ответ

0 голосов
/ 20 июля 2017

Я не эксперт по WPF и могу неправильно прочитать ваш вопрос.

Однако я только что прочитал это:

Существует альтернативный способ связать элемент управления в представлении с объектом команды, отображаемым моделью представления. Только некоторые элементы управления могут фактически связываться с командой через свойство Command, особенно те, которые получены из System.Windows.Controls.Primitives.ButtonBase или System.Windows.Controls.MenuItem. Если вы хотите присоединить команду к какому-либо другому элементу управления или если вы хотите вызвать команду для события, отличного от события нажатия кнопки, вы можете использовать триггеры взаимодействия Expression Blend и класс System.Windows.Interactivity.InvokeCommandAction.

Источник: blog.magnusmontin.net

Возможно, вы захотите проверить триггеры событий.

...