InputBinding CommandParameter绑定到集合

时间:2013-09-17 16:04:44

标签: wpf key-bindings inputbinding

对于KeyBinding,我使用Binding在Xaml中设置CommandParameter。在Binding中有一个转换器设置。

当我将参数绑定到属性(INPC)时,绑定系统使用Converter重新评估。

但是,当我将参数设置为可观察集合时,在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>

在上面的代码中,我设置了一个viewmodel(datacontext)。但我打算将命令参数绑定到Grid的SelectedRows集合。

1 个答案:

答案 0 :(得分:1)

如果您只想将DataGrid的选定项目作为命令参数,则可以直接绑定到它。假设Datagrid和Textbox在同一个可视树中

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