2013-09-17 2 views
1

Для KeyBinding Я настраиваю CommandParameter в Xaml с помощью Binding. В Binding есть настройка конвертера.InputBinding CommandParameter Связывание с коллекцией

Когда я привязываю параметр к свойству (INPC), система привязки повторно оценивает с помощью конвертера.

Однако, когда I параметр для наблюдаемой коллекции, на CollectionChanged система привязки не переоценивается. Следовательно, я получаю начальное преобразованное значение.

Есть ли способ, которым я запускаю CommandParameter для повторного evalaute на CollectionChanged.

<TextBox Grid.Row="0" Text="{Binding MyParameter}"> 
     <TextBox.InputBindings> 
     <KeyBinding Gesture="CTRL+D" 
        Command="{Binding MyCommand}" 
        CommandParameter="{Binding MyParameter, 
              Converter={StaticResource converter}}"> 
     </KeyBinding> 
     <KeyBinding Gesture="CTRL+T" 
        Command="{Binding MyCommand}" 
        CommandParameter="{Binding ChangedValuesCollection, 
                 Converter={StaticResource CollectionConverter}}"> 
     </KeyBinding> 
     </TextBox.InputBindings> 
    </TextBox> 

В приведенном выше коде, я настроить ViewModel (DataContext). Но я намерен привязать параметр команды к коллекции Grid's SelectedRows.

+0

у вас есть ChangedValuesCollection, в ViewModel? – Nitin

+0

В этом примере в модели представления. Однако моя цель - привязать к выделенным ячейкам сетки – Bhavesh

+0

, см., Если ниже приведен ответ – Nitin

ответ

1

Если вы хотите, чтобы выбранные элементы DataGrid в качестве параметра команды могли напрямую связываться с ним. Предполагая, что Datagrid и текстовое поле находятся в одном и том же визуальном дереве

<KeyBinding Gesture="CTRL+T" 
        Command="{Binding MyCommand}" 
        CommandParameter="{Binding SelectedItems, ElementName="myDataGrid"}">