This sample illustrates how to customize the default hotkeys of the Report Designer for WPF (both in XAML and in code).
Files to Review
Documentation
Does this example address your development requirements/objectives?
(you will be redirected to DevExpress.com to submit your response)
Example Code
XAML<Window
x:Class="T461248.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxrud="http://schemas.devexpress.com/winfx/2008/xaml/reports/userdesigner"
xmlns:mvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
xmlns:local="clr-namespace:T461248"
Title="MainWindow"
Height="800" Width="1200"
FocusManager.FocusedElement="{Binding ElementName=designer}">
<mvvm:Interaction.Behaviors>
<dx:DXMessageBoxService />
</mvvm:Interaction.Behaviors>
<dxrud:ReportDesigner Name="designer" DocumentSource="{Binding Report, Mode=OneWay}">
<dxrud:ReportDesigner.InputBindings>
<KeyBinding Key="Q" Modifiers="Control+Shift" Command="{Binding ElementName=designer, Path=ActualCommands.ExitCommand}" />
</dxrud:ReportDesigner.InputBindings>
</dxrud:ReportDesigner>
</Window>
C#using DevExpress.XtraReports.UI;
using System.Windows;
using System.Windows.Input;
using DevExpress.Mvvm;
namespace T461248 {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
Loaded += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, RoutedEventArgs e) {
var viewModel = new MainWindowViewModel(new SampleReport());
DataContext = viewModel;
designer.RegisterHotKey(Key.OemTilde, ModifierKeys.Control, () => viewModel.TestCommand, null);
}
}
public class MainWindowViewModel : ViewModelBase {
public XtraReport Report { get; private set; }
public ICommand TestCommand { get; private set; }
public MainWindowViewModel(XtraReport report) {
Report = report;
TestCommand = new DelegateCommand(RunTestCommand);
}
void RunTestCommand() {
GetService<IMessageBoxService>().ShowMessage("Test command.");
}
}
}