InputBinding CommandParameter Привязка к коллекции

Для KeyBinding я устанавливаю CommandParameter в Xaml, используя Binding. В Binding есть конвертер настроек.

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

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

Есть ли способ я запускаю CommandParameter для повторной оценки на 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>

В приведенном выше коде я настроил модель представления (datacontext). Но я намерен связать параметр команды с коллекцией SelectedRows в Grid.

1 ответ

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

 <KeyBinding Gesture="CTRL+T"
                    Command="{Binding MyCommand}"
                    CommandParameter="{Binding SelectedItems, ElementName="myDataGrid"}">
Другие вопросы по тегам