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

Обновить

April 2019

Просмотры

2k раз

1

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

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

Однако, когда я параметр, наблюдаемой коллекции, на 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). Но я намерен связать параметр командной строки на коллекции SelectedRows по управляющая сетка в радиолампе.

1 ответы

1

If you just want the selected items of DataGrid as your command parameter you can directly bind to it. Assuming Datagrid and Textbox are in same visual tree

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