これは私のxamlの一部です:
<DataGrid ItemsSource="{Binding listImages, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False" Name="dataGrid1" Height="341" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="10,10,10,0" Width="225" CanUserResizeRows="False" CanUserResizeColumns="False" CanUserReorderColumns="False" CanUserAddRows="False" IsHitTestVisible="True" OverridesDefaultStyle="False" SelectedIndex="0" SelectionUnit="FullRow" SelectionMode="Single">
<DataGrid.InputBindings>
<KeyBinding Key="a" Command="{Binding Path=KeyPressed}"/>
<KeyBinding Key="s" Command="{Binding Path=KeyPressed}"/>
<KeyBinding Key="d" Command="{Binding Path=KeyPressed}"/>
</DataGrid.InputBindings>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="{Binding rowColor}"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="ImageName" Binding="{Binding imageName}" Width="112" />
<DataGridTextColumn Header="Tag" Binding="{Binding tag}" Width="110" />
</DataGrid.Columns>
このデータグリッドのみ、またはより適切にはKeyBindingsのみが定義されている.xamlをロードしたいと思います。これは、ユーザーがバインドできるキーを変更できるためです。
例:トムは、a、s、dの代わりにキーz、x、cを使用したいと考えています。これを行うために、彼はデフォルトのxml / xaml(どこかにあります)を編集し、KeyBindingのKeyパラメーターを変更してロードします。
新しいxml/xamlは次のようになります。
<DataGrid ItemsSource="{Binding listImages, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False" Name="dataGrid1" Height="341" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="10,10,10,0" Width="225" CanUserResizeRows="False" CanUserResizeColumns="False" CanUserReorderColumns="False" CanUserAddRows="False" IsHitTestVisible="True" OverridesDefaultStyle="False" SelectedIndex="0" SelectionUnit="FullRow" SelectionMode="Single">
<DataGrid.InputBindings>
<KeyBinding Key="z" Command="{Binding Path=KeyPressed}"/>
<KeyBinding Key="x" Command="{Binding Path=KeyPressed}"/>
<KeyBinding Key="c" Command="{Binding Path=KeyPressed}"/>
</DataGrid.InputBindings>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="{Binding rowColor}"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="ImageName" Binding="{Binding imageName}" Width="112" />
<DataGridTextColumn Header="Tag" Binding="{Binding tag}" Width="110" />
</DataGrid.Columns>
MVVMパターンに従ってこれを行うことは可能ですか?