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"}">