An earlier post explains how to set IsUndoEnabled=false to prevent RadNumericUpDown from handling undo. I did that, and it disabled the local undo feature. However, when focus is on the control and I press Ctrl-Z or Ctrl-Y, my global commands are not executed, although they work when focus is not on the RadNumericUpDown.
I tried two approaches to resolve this: adding a KeyDown handler, and adding local input bindings. The KeyDown handler receives the LControl key, but not the Z or Y keys while LControl is pressed. The local input bindings don't seem to do anything (see below).
So, after setting IsUndoEnabled=false, how do I get Ctrl-Z and Ctrl-Y to execute my global commands when focus is on the RadNumericUpDown control?
<telerik:RadNumericUpDown VerticalAlignment="Center"
NumberDecimalDigits="2"
Margin="0"
Width="80"
Loaded="RadNumericUpDown_Loaded"
Value="{Binding Width}">
<telerik:RadNumericUpDown.InputBindings>
<KeyBinding Gesture="Ctrl+Z" Command="{Binding UndoCommand}" />
<KeyBinding Gesture="Ctrl+Y" Command="{Binding RedoCommand}" />
</telerik:RadNumericUpDown.InputBindings>
</telerik:RadNumericUpDown>
Hello!
How can I dynamically customize RibbonView quick access toolbar? I want to show and hide buttons using quick access toolbar menu like in Microsoft Office applications. It seems that this is not possible and menu is not customizable either.
Thank you.
I am making a test app to measure the loading speed of Windows DataGrid vs RadGrid. In the app I was binding Data Tables and Collections into DataGrid and RadGrid. Binding to the Windows DataGrid I would see and average time of 5ms for DataTables and 1.5ms for Collections. When you bind to RadGrid I get 200-400ms regardless of the type. Any ideas?
<telerik:RadBusyIndicator IsBusy="{Binding Path=IsBusy}">
<Grid DataContext="{Binding Telerik, Source={StaticResource Locator}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.Resources>
<Style TargetType="DataGrid">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="Margin" Value="10"/>
</Style>
<Style TargetType="Button">
<Setter Property="Width" Value="75"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="10"/>
</Style>
<Style TargetType="TextBlock">
<Setter Property="Width" Value="75"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="10"/>
</Style>
<Style x:Key="TextLabel" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="FontWeight" Value="Bold"/>
</Style>
<Style x:Key="ToolBarImage" TargetType="Image">
<Setter Property="Width" Value="20"/>
<Setter Property="Height" Value="20"/>
<Setter Property="Margin" Value="1"/>
</Style>
</Grid.Resources>
<ToolBarTray>
<ToolBar>
<Button Command="{Binding ExitCommand}" ToolTip="Home">
<Grid>
<Image Source="{StaticResource Home}" Style="{StaticResource ResourceKey=ToolBarImage}"/>
</Grid>
</Button>
<Button Command="{Binding DataCommand}" ToolTip="Execute" >
<Grid>
<Image Source="{StaticResource Play}" Style="{StaticResource ResourceKey=ToolBarImage}"/>
</Grid>
</Button>
<Button Command="{Binding ResetCommand}" ToolTip="Reset">
<Grid>
<Image Source="{StaticResource Reset}" Style="{StaticResource ResourceKey=ToolBarImage}"/>
</Grid>
</Button>
<Separator/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Execution Time:" Style="{StaticResource TextLabel}"/>
<TextBlock Text="{Binding TimeElapsed, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, StringFormat={}{0:F3} ms}"/>
</StackPanel>
<Separator/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Average Time:" Style="{StaticResource TextLabel}"/>
<TextBlock Text="{Binding AvgTimeElapsed, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, StringFormat={}{0:F3} ms}"/>
</StackPanel>
<Separator/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Times executed: " Style="{StaticResource TextLabel}"/>
<TextBlock Text="{Binding ExecutedNum, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StackPanel>
</ToolBar>
</ToolBarTray>
<telerik:RadGridView Grid.Row="1" Grid.Column="0" ItemsSource="{Binding MoldData}" Name="dataGridView1"/>
</Grid>
</telerik:RadBusyIndicator>
Chart.Series.Add(new LineSeries
{
CategoryBinding = binding,
ValueBinding = ...,
StrokeThickness = 1,
Stroke = ...,
ItemsSource = vm.Datas,
TrackBallInfoTemplate = // difficult to create
});
TrackBallInfoTemplate is difficult to create, how can i only set a stringformat to use trackballinfo
Hello,
I have some of GridViewCheckBoxColumn and GridViewComboBoxColumn that bound to nested property which works perfectly. But when I try to use ExportToXlsx() to export into excel file, result from every columns that bound to nested property are different.
GridViewCheckBoxColumn bound to nested property yields True/False instead of TRUE/FALSE and GridViewComboBoxColumn yields selected value instead of display value which I preferred display value.
Is there anyway to make all columns regardless of nested property binding to be exported in the same format?
Here's my sample code
<Window x:Class="WpfApplication3.Window4" xmlns:local="clr-namespace:WpfApplication3" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" mc:Ignorable="d" Title="Window4" Width="800" Height="300" > <StackPanel> <telerik:RadGridView Name="grid1" ItemsSource="{Binding GridItemSoure}" AutoGenerateColumns="False"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn Header="Display" DataMemberBinding="{Binding Display}"/> <telerik:GridViewCheckBoxColumn Header="IsChecked" DataMemberBinding="{Binding IsChecked}"/> <telerik:GridViewComboBoxColumn Header="SelectedItem" DataMemberBinding="{Binding SelectedItemId}" ItemsSource="{Binding ComboItemSource}" DisplayMemberPath="Display" SelectedValueMemberPath="Id"/> <telerik:GridViewDataColumn Header="Amount" DataMemberBinding="{Binding Amount}"/> <telerik:GridViewDataColumn Header="This.Display" DataMemberBinding="{Binding This.Display}"/> <telerik:GridViewCheckBoxColumn Header="This.IsChecked" DataMemberBinding="{Binding This.IsChecked}"/> <telerik:GridViewComboBoxColumn Header="This.SelectedItem" DataMemberBinding="{Binding This.SelectedItemId}" ItemsSource="{Binding ComboItemSource}" DisplayMemberPath="Display" SelectedValueMemberPath="Id"/> <telerik:GridViewDataColumn Header="This.Amount" DataMemberBinding="{Binding This.Amount}"/> </telerik:RadGridView.Columns> </telerik:RadGridView> <Button Click="Button_Click">Export</Button> </StackPanel></Window>public partial class Window4 : Window{ public Window4() { InitializeComponent(); this.DataContext = new { GridItemSoure = new List<RowItem>() { new RowItem() { Display = "Row1", IsChecked = true, SelectedItemId = null, Amount = 9.999m }, new RowItem() { Display = "Row2", IsChecked = false, SelectedItemId = null, Amount = 10000 }, new RowItem() { Display = "Row3", IsChecked = true, SelectedItemId = 2, Amount = 1/3 }, new RowItem() { Display = "Row4", IsChecked = false, SelectedItemId = 3, Amount = -1/3 }, }, ComboItemSource = new List<Item>() { new Item() { Id = 1, Display = "Item 1" }, new Item() { Id = 2, Display = "Item 2" }, new Item() { Id = 3, Display = "Item 3" }, }, }; } private void Button_Click(object sender, RoutedEventArgs e) { string extension = "xlsx"; SaveFileDialog dialog = new SaveFileDialog() { DefaultExt = extension, Filter = String.Format("{1} files (*.{0})|*.{0}|All files (*.*)|*.*", extension, "Excel Workbook"), FilterIndex = 1 }; if (dialog.ShowDialog() == true) { using (Stream stream = dialog.OpenFile()) { grid1.ExportToXlsx(stream, new GridViewDocumentExportOptions() { ShowColumnHeaders = true, ShowColumnFooters = true, ShowGroupFooters = true, AutoFitColumnsWidth = true, ExportDefaultStyles = false, }); } } }}public class RowItem : INotifyPropertyChanged{ private string _Display; public string Display { get { return _Display; } set { this._Display = value; OnPropertyChanged(nameof(Display)); } } private bool _IsChecked; public bool IsChecked { get { return _IsChecked; } set { this._IsChecked = value; OnPropertyChanged(nameof(IsChecked)); } } private int? _SelectedItemId; public int? SelectedItemId { get { return _SelectedItemId; } set { this._SelectedItemId = value; OnPropertyChanged(nameof(SelectedItemId)); } } private decimal? _Amount; public decimal? Amount { get { return _Amount; } set { this._Amount = value; OnPropertyChanged(nameof(Amount)); } } public RowItem This { get { return this; } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string name) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(name)); }}public class Item : INotifyPropertyChanged{ private string _Display; public string Display { get { return _Display; } set { this._Display = value; OnPropertyChanged(nameof(Display)); } } private int? _Id; public int? Id { get { return _Id; } set { this._Id = value; OnPropertyChanged(nameof(Id)); } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string name) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(name)); }}
Thanks
Hi,
I have a huge amount of data, which I don't want to load all into the gridview.
I want to have the following scenario: The user applies filter with the default filtering control. The ViewModel get the FilterDescriptor and request the filtered Data at the DataService. The GridView shows the received data.
I don't want to use the filter for filtering the data bound to the gridview, I want to use it to request filtered data.
Moritz
I've modified the AppointmentItemHorizontalControlTemplate template to include a popup like so:
<ControlTemplate x:Key="AppointmentItemHorizontalControlTemplate" TargetType="telerikScheduleView:AppointmentItem"> <Grid x:Name="Root"> <Popup Style="{StaticResource AppointmentPopupStyle}" PlacementTarget="{Binding ElementName=Root}" />...</ControlTemplate>
The popup shows as expected, however when I try to selected something on the popup by holding down the left mouse button, a drag effect is initiated beneath it that is trying to move the appointment into another slot (e.g when using the Month View definition). Unfortunately no event is received in the popup until after the drag effect is initiated.
Is there are a way to cancel the drag effect of the schedule view when the user is interacting with a popup?
now the fluent theme use the Aero effect,the background is too clear,
the Acrylic effect is better!
there is a opensource project: https://github.com/sourcechord/FluentWPF
the principal code:
internal enum AccentState
{
ACCENT_DISABLED = 0,
ACCENT_ENABLE_GRADIENT = 1,
ACCENT_ENABLE_TRANSPARENTGRADIENT = 2,
ACCENT_ENABLE_BLURBEHIND = 3,
ACCENT_ENABLE_ACRYLICBLURBEHIND = 4,
ACCENT_INVALID_STATE = 5
}
accent.GradientColor = 0x00FFFFFF;
Hello,
A multi-selection RadComboBoxis integrated into a cell of a RadGridView in the
project that is attached.
The problem I have when trying to add a handle to an event to customize the
loading of the multiple values of the RadComboBox.
This code does not work ...
FrameworkElementFactory dateFactory = new FrameworkElementFactory (typeof
(RadComboBox), "Target");
dateFactory.SetValue (RadComboBox.AllowMultipleSelectionProperty, true);
dateFactory.SetValue (RadComboBox.ItemsSourceProperty, new List
<string> {"DBF", "REP"});
// Add handler not rule
RoutedEventHandler handler = new RoutedEventHandler (LoadedTarget_RadComboBox);
dateFactory.AddHandler (RadComboBox.LoadedEvent, handler, true);
On the other hand, if I add the handler outside of a Grid it works correctly
Thanks in advance.
[I'm attaching the test project code concerning the problem]