Telerik Forums
UI for WPF Forum
1 answer
166 views

The RadComboBox seems to require the user to have the cursor over the item text to be able to select the item. This is not the case for the standard ComboBox. Is it possible to change this without creating a custom ControlTemplate?

It is not bad when the items are longer strings. But we have a combo box with individual characters, and you have to click directly on the character to select the item. For whatever reason, if the items in the combo box are integers, selection works as expected.

See the attached animated gif.

Todd
Top achievements
Rank 1
 answered on 11 Nov 2019
8 answers
181 views
In Excel, if you select a row and then drag down past the bottom of what is visible, it scrolls automatically for you. But the RadSpreadsheet does not do this. Is there an option I am missing or an easy workaround?
Peshito
Telerik team
 answered on 11 Nov 2019
2 answers
492 views

Hi All,

I am opening RadWindow with ShowDialog() from viewmodel. I am not able to detect close 'X' button event. I want to prompt user before closing. 

My code looks like:

AssetViewModel.cs

var AssetWindow = new RadWindow
            {
                Header = "Asset Information",
                Owner = Application.Current.MainWindow,                
                WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner,
                Content = new UserControl()
            };          
AssetWindow.ShowDialog();

What is the best approach to detect close event, prompt user and proceed with user selected option i.e Yes/No

 Any help would be appreciated,

Regards,

Prashant Kirpan

 

 

 

Prashant
Top achievements
Rank 1
 answered on 10 Nov 2019
1 answer
199 views

Hi All,

I am using RadTabControl and validation is working only if tab is selected. i.e. updating UI only for selected tab and not others.

I have a RadTabControl control with three RadTabItem. Every tabitem contains usercontrol with own view model.

For all user controls, i have used  IDataErrorInfo for validation. From main control, manually i am triggering validation using notifyproperty change i.e.  RaisePropertyChanged(string.Empty).

This is working fine only if tab is selected. validation is executing properly on other tabs but UI is not updating

Control Structure:

MainVM.cs

      - TabControl1VM = new TabControl1ViewModel();

      - TabControl2.VM = new TabControl2ViewModel();

 

MainControl.xaml

  <telerik:RadTabControl  >
            <telerik:RadTabItem  Header="Location" DataContext="{Binding TabControl1VM}" >
                <telerik:RadTabItem.Content >                    
                        <local:TabControl1></local:TabControl1>                    
                </telerik:RadTabItem.Content>
            </telerik:RadTabItem>

            <telerik:RadTabItem Header="Asset Type" DataContext="{Binding TabControl2VM}">
                <telerik:RadTabItem.Content>
                    <local:TabControl2></local:TabControl2>
                </telerik:RadTabItem.Content>
            </telerik:RadTabItem>

 

Any help would be appreciated,

Regards,

Prashant
           

 

 

 

 

Petar Mladenov
Telerik team
 answered on 08 Nov 2019
15 answers
1.0K+ views
Hi,

I'm looking for a way to bind a List of key / value objects to the propertygrid. Consider the following snippets of code:

public void PopulatePropertyGrid()
{
    List<MyKeyValueClass> propertyList = new List<MyKeyValueClass>();
    propertyList.Add(new MyKeyValueClass(){ Key="property1", Value="value1" });
    propertyList.Add(new MyKeyValueClass(){ Key="property2", Value="value2" });
    propertyList.Add(new MyKeyValueClass(){ Key="property3", Value="value3" });
    //How do I bind this List to a RadPropertyGrid, so I get 3 properties with filled in values?
}


public class MyKeyValueClass
{
    public string Key {get;set;}
    public string Value {get;set;}
}



I tried something like this:
XAML:
<telerik:RadPropertyGrid x:Name="radPropertyGrid" AutoGeneratePropertyDefinitions="false" />


.cs:
radPropertyGrid.PropertyDefinitions.Clear();
foreach (MyKeyValueClass mkvc in propertyList)
{
    radPropertyGrid.PropertyDefinitions.Add(new PropertyDefinition()
    {
        DisplayName = mkvc.Key,
        Binding = new Binding("Value")
    });
}
radPropertyGrid.Item = propertyList;




This sets the displaynames accordingly, but won't show / bind the values 
Is this possible?

Stan

-Edit: code blocks formatted
Dilyan Traykov
Telerik team
 answered on 08 Nov 2019
7 answers
320 views
I am currently trying to Drag Drop Custom Control from List box to RadDiagram.

I am able to Drag the Custom Control (Shell) but not able to Create a Shape in RadDiagram.

Code:

Shell (Custom Control)

 public class Shell : Telerik.Windows.Controls.Diagrams.RadDiagramShapeBase
    {
        static Shell()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(Shell), new FrameworkPropertyMetadata(typeof(Shell)));
        }
    }

Style
<Style TargetType="{x:Type local:Shell}">
        <Setter Property="BorderThickness" Value="2"/>
        <Setter Property="BorderBrush" Value="Black"/>
        <Setter Property="HorizontalAlignment" Value="Center"/>
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="Height" Value="100"/>
        <Setter Property="Width" Value="100"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:Shell}">
                    <Grid Background="{TemplateBinding Background}">
                        <Ellipse Stroke="{TemplateBinding BorderBrush}"/>
                        <Ellipse  Margin="13" Stroke="Black" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Drag And Drop Code

Telerik.Windows.DragDrop.DragDropManager.AddDragInitializeHandler(listBox, OnDragInitialize);  (ListBox)
Telerik.Windows.DragDrop.DragDropManager.AddDropHandler(radDiagram, OnDropShape);(RadDiagram)

 private void OnDropShape(object sender, Telerik.Windows.DragDrop.DragEventArgs e)
        {
            e.Handled = true;
            Shell shape = new Shell();
            var rawdata= (e.Data as DataObject).GetData(typeof(Shell));
            
           
            {
                Shell droppedShape = rawdata as Shell;
               
                this.radDiagram.AddShape(droppedShape);
           
            }
            
        }

        private void OnDragInitialize(object sender,Telerik.Windows.DragDrop.DragInitializeEventArgs e)
        {
            e.AllowedEffects = DragDropEffects.All;
           Shell draggedshape = (e.OriginalSource as ListBoxItem).Content as Shell;
           e.Data = draggedshape;
            
        }
 I am able to get the dragged Shell but i don`t know how to convert the Shell object to RadDiagramShape.

Any help is appreciated!!!


 







Thomas
Top achievements
Rank 1
 answered on 08 Nov 2019
5 answers
293 views

Hi,

 

I'm trying to fill my RadTileView on an event Window_Loaded.

The form updates ok in terms of code, but visualualy it remains empty and i have no idea why:

private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            MyRadtileView.Items.Clear();
            MyRadtileView.Items.Add(new RadTileViewItem()
            {
                Header = "test"
            });
 
            MyRadtileView.UpdateLayout();
        }

 

Result:

 

 

Can anyone help me?

Martin Ivanov
Telerik team
 answered on 08 Nov 2019
1 answer
102 views

Hi,

I would like to customise the animation for the opening and navigate event/state of the radial menu. How can I do it? Thank you! 

Dinko | Tech Support Engineer
Telerik team
 answered on 08 Nov 2019
2 answers
197 views

I have an existing WPF application which uses Microsoft.Windows.controls.Datagrid. I want to add the RadDataPager to do the pagination, how can I do it? 

Here's my sample code. It displays the data but it doesn't do the pagination. All data is displayed in a single page.

<dg:DataGrid Name="dgRegistryDetails" FontSize="14" DockPanel.Dock="Bottom" Foreground="#FF07315B"

                         ItemsSource="{Binding}"   CanUserSortColumns="true"
IsReadOnly="True"    AutoGenerateColumns="False" >

 

<telerik:RadDataPager VerticalAlignment="Bottom" DisplayMode="FirstLastPreviousNextNumeric" Source="{Binding Items, ElementName=dgRegistryDetails}"  IsTotalItemCountFixed="True" x:Name="RadPager" PageSize="10" />

Niraja
Top achievements
Rank 1
 answered on 08 Nov 2019
9 answers
557 views

I have a C# WPF application using MVVM with a simple RadCartesianChart that shows a single ScatterLineSeries representing a surface profile.  It works well. 

Now I want to enable my user to mark out certain horizontal regions of the plot for use in my application.  The general idea is this

  1. User clicks a button that adds a visual indicator representing the region. 
  2. The indicator appears.  It looks like a big wide bar going from the bottom Y of the plot to the top Y and covering an arbitrary X width.
  3. The user can then use the mouse (or their finger) to made the bar wider/narrower or move it left or right across the plot

(I have attached an image showing roughly what this should look like.  It is from a much older version of this application that doesn't use C#, WPF or Telerik.)

My problem is not in writing interaction/manipulation code.  It is in determining exactly what Telerik entity I should interact with.  That is I don't know how best to achieve this with the tools Telerik gives me.   

I can think of several approaches. 

  • For example, I looked into using Chart Annotations.   They seem perfect for marking out chart regions and your examples are good.  But I can't find any examples that show me how the user might *interact* with them.    How do I add a mouse/touch handler for an annotation?   Is it possible?  Is that the best way?
  • Or maybe I should add mouse/touch handlers for the RadCartesianChart object.  Then in code-behind I could try to figure out what annotation my mouse/finger is over and go from there, is that the way?  
  • Or should I instead try to create my own buttons, completely separate from the cahrt that overlay the whole plot and match up exactly with chart plot area.  Is that the way to go?
  • Is there some other, cleaner way to achieve this?

 

My Chart in XAML is like this:

   

<tk:RadCartesianChart x:Name="Chart"
                         HorizontalAlignment="Stretch"
                         VerticalAlignment="Stretch"
                         Background="{StaticResource GsBackgroundDark}"
                         Foreground="{StaticResource GsForegroundLight}"
                         Height="300"
                         HoverMode="FadeOtherSeries"     
                         SelectionPalette="FlowerSelected"
                         ga:ChartUtilities.IsDragToSelectEnabled="True"
                         ga:ChartUtilities.SelectionRectangleStyle="{StaticResource SelectionRectangleStyle}"
                          
                         >
       <tk:RadCartesianChart.Resources>
           <Style x:Key="LabelStyle" TargetType="TextBlock">
               <Setter Property="Foreground" Value="{StaticResource GsForegroundLight}"/>
           </Style>
       </tk:RadCartesianChart.Resources>
       <tk:RadCartesianChart.HorizontalAxis>
           <tk:LinearAxis Title="{Binding Path=XAxisTitle}"
                          Foreground="{StaticResource GsForegroundLight}"
                          LabelStyle="{StaticResource LabelStyle}"
                          LabelFormat="0.00"
                          />
       </tk:RadCartesianChart.HorizontalAxis>
       <tk:RadCartesianChart.VerticalAxis>
           <tk:LinearAxis  x:Name="YAxis"
                           Title="{Binding Path=YAxisTitle}"
                           Foreground="{StaticResource GsForegroundLight}"
                           LabelStyle="{StaticResource LabelStyle}"
                           LabelFormat="0.00"   
                           />
       </tk:RadCartesianChart.VerticalAxis>
 
           <tk:RadCartesianChart.AnnotationsProvider>
               <tk:ChartAnnotationsProvider Source="{Binding Regions}">
                   <tk:ChartAnnotationDescriptor
                       d:DataContext="{d:DesignInstance gavm:ProfileRegionVm}">
                       <tk:ChartAnnotationDescriptor.Style>
                           <Style TargetType="tk:CartesianMarkedZoneAnnotation">
                               <Setter Property="VerticalFrom" Value="-1000" />
                               <Setter Property="VerticalTo" Value="1000" />
                               <Setter Property="HorizontalFrom" Value="{Binding HorizontalFrom}"/>
                               <Setter Property="HorizontalTo" Value="{Binding HorizontalTo}"/>
                               <Setter Property="Stroke" Value="Yellow"/>
                           </Style>
                       </tk:ChartAnnotationDescriptor.Style>
                   </tk:ChartAnnotationDescriptor>
               </tk:ChartAnnotationsProvider>
           </tk:RadCartesianChart.AnnotationsProvider>
            
       <tk:RadCartesianChart.Series>
           <tk:ScatterLineSeries ItemsSource="{Binding Path=ProfilePointsConverted}"
                                 XValueBinding="X"
                                 YValueBinding="Y"                          
                                 >
               <tk:ScatterLineSeries.LegendSettings>
                   <tk:SeriesLegendSettings Title="Profile"/>
               </tk:ScatterLineSeries.LegendSettings>
           </tk:ScatterLineSeries>
       </tk:RadCartesianChart.Series>
   </tk:RadCartesianChart>

My ProfileRegionVm class -- which represents an instance of this horizontal reagion is like this:

using System.Collections.Generic;
using GApp.Core.ViewModels;
using SWPoint = System.Windows.Point;
 
namespace GApp.Analyze.ViewModels
{
    public class ProfileRegionVm : BaseVm
    {
 
        public ProfileRegionVm()
        {
        }
 
        private List<SWPoint> _profilePoints;
 
        private List<SWPoint> Points
        {
            get => _profilePoints;
            set => SetProperty(ref _profilePoints, value);
        }
 
        private Sdk.Line _line;
 
        private Sdk.Line Line
        {
            get => _line;
            set => SetProperty(ref _line, value);
        }
 
        private string _name;
        public string Name
        {
            get => _name;
            set => SetProperty(ref _name, value);
        }
 
        private double _verticalFrom;
        public double VerticalFrom
        {
            get => _verticalFrom;
            set => SetProperty(ref _verticalFrom, value);
        }
 
 
        private double _verticalTo;
 
        public double VerticalTo
        {
            get => _verticalTo;
            set => SetProperty(ref _verticalTo, value);
        }
 
        private double _horizontalFrom;
 
        public double HorizontalFrom
        {
            get => _horizontalFrom;
            set => SetProperty(ref _horizontalFrom, value);
        }
 
 
        private double _horizontalTo;
 
        public double HorizontalTo
        {
            get => _horizontalTo;
            set => SetProperty(ref _horizontalTo, value);
        }
 
    }
}




Joe
Top achievements
Rank 2
Iron
Iron
Veteran
 answered on 07 Nov 2019
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Expander
Slider
TileList
PersistenceFramework
DataPager
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
Wizard
ExpressionEditor
NavigationView (Hamburger Menu)
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
ProgressBar
Sparkline
LayoutControl
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
Licensing
WebCam
CardView
DataBar
FilePathPicker
PasswordBox
Rating
SplashScreen
Accessibility
Callout
CollectionNavigator
Localization
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?