Telerik Forums
UI for WPF Forum
1 answer
171 views

I want to change the style of selected cell of RadGridView in my WPF form. I found the following style from RadGridView documentation and I used it.

<Style TargetType="{x:Type telerik:GridViewEditorPresenter}"><Setter Property="Template" Value="{StaticResource GridViewEditorPresenterTemplate}"/><Setter Property="Padding" Value="5"/></Style>

However, I got the warning error "Resource GridViewEditorPresenterTemplate is not found."

Do I need to include some assemblies in my xaml file?

Also, in Excel, if I use mouse to select a range of cells, there is a solid black border for all the selected ranges, can we do the same for RadGridView selected cells?

Thanks.

 

Stefan
Telerik team
 answered on 08 Mar 2017
1 answer
271 views

Hi, I am trying to change Enter key bevavior to act like Tab key. I found your documentation and blog post but these are all for the case when grid is in edit mode. My grid looks like this:

01.<telerik:RadGridView Name="Grid"
02.                             Grid.Row="1"
03.                             AutoGenerateColumns="False"
04.                             ItemsSource="{Binding Orders}"
05.                             ShowGroupPanel="False"
06.                             RowIndicatorVisibility="Collapsed"
07.                             BorderBrush="Black"
08.                             Margin="5">
09.            <telerik:RadGridView.Columns>
10.                <telerik:GridViewDataColumn Header="Price" Width="150">
11.                    <telerik:GridViewDataColumn.CellTemplate>
12.                        <DataTemplate>
13.                            <telerik:RadNumericUpDown Value="{Binding Price, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" SmallChange="0.1" LargeChange="1"/>
14.                        </DataTemplate>
15.                    </telerik:GridViewDataColumn.CellTemplate>
16.                </telerik:GridViewDataColumn>
17. 
18.                <telerik:GridViewDataColumn Header="Volume" Width="*">
19.                    <telerik:GridViewDataColumn.CellTemplate>
20.                        <DataTemplate>
21.                            <telerik:RadNumericUpDown Value="{Binding Volume, Mode=TwoWay, StringFormat=N2, UpdateSourceTrigger=LostFocus}" SmallChange="0.1" LargeChange="1"/>
22.                        </DataTemplate>
23.                    </telerik:GridViewDataColumn.CellTemplate>
24.                </telerik:GridViewDataColumn>
25.            </telerik:RadGridView.Columns>
26.        </telerik:RadGridView>

 

And my custom keyboard command provider looks like this:

01.public class CustomKeyboardCommandProvider : DefaultKeyboardCommandProvider
02.    {
03.        public CustomKeyboardCommandProvider(GridViewDataControl grid) : base(grid)
04.        {
05.        }
06. 
07.        public override IEnumerable<ICommand> ProvideCommandsForKey(Key key)
08.        {
09.            if (key == Key.Enter)
10.            {
11.                var tabCommands = base.ProvideCommandsForKey(Key.Tab).ToList();
12. 
13.                return tabCommands;
14.            }
15. 
16.            return base.ProvideCommandsForKey(key).ToList();
17.        }
18.    }

 

Is there a way how to do it for my case?

Thank you.

Karel

Dilyan Traykov
Telerik team
 answered on 08 Mar 2017
1 answer
211 views

I've just edited the First_Look example of the PdfViewer. If I generate a text export, by using:

            var provider = new PdfFormatProvider(str, FormatProviderSettings.ReadOnDemand);
            RadFixedDocument doc = provider.Import();
            textBlock.Text = new TextFormatProvider().Export(doc, new TextFormatProviderSettings());

I recognize, that the results are not as expected. Some special characters are not correctly translated. In figure 1 the special character â€˜ (\u2018) is displayed in the pdfview correctly whereas in the generated text the character was translated in \u0091 which is for private use. Also for non special characters there is also an unexpected behavior visible. In figure 2 it is visible that the 'fl' is missing in the word 'beeinflussen'. The string is translated in "beein\u001fussen". This means that the two characters 'fl' is replaced by the single character \u001f. This \u001f means 'Unit Seperator' which makes in this context not much sense for me.

Thank you

Deyan
Telerik team
 answered on 08 Mar 2017
1 answer
168 views

I am trying to add a list of lists of lists to a radtreeView but the child elements never appear, I have used a HeirichalDataTemplate as a test for the first 2 elements, is there something I am missing , given the following xalm 

<pre>

<telerik:RadTabItem Header="Lookup Sets">
                            <telerik:RadTreeView IsLoadOnDemandEnabled="True" ItemsSource="{Binding AttributeLookupSetConversions}">
                                <telerik:RadTreeView.Resources>
                                    <HierarchicalDataTemplate DataType="{x:Type cm:AttributeLookupSetConversion}">
                                        <CheckBox Content="{Binding Path=Name}"  IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type telerikDocking:RadSplitContainer}}, Path=DataContext.UpdateSelectionCommand}"/>
                                    </HierarchicalDataTemplate>
                                    <HierarchicalDataTemplate DataType="{x:Type cm:AttributeConversion}">
                                        <CheckBox Content="{Binding Path=Name}"  IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type telerikDocking:RadSplitContainer}}, Path=DataContext.UpdateSelectionCommand}"/>
                                    </HierarchicalDataTemplate>
                                </telerik:RadTreeView.Resources>
                            </telerik:RadTreeView>
                        </telerik:RadTabItem>

</pre>

 

I cant seem to get the UI to show its child elements

Dinko | Tech Support Engineer
Telerik team
 answered on 08 Mar 2017
1 answer
171 views

Hi, 

Is it possible to change the way that MDX is generated by the PivotGrid when filters are applied? 

Currently when I apply a Month filter in my time dimension for e.g., this is done by adding the filter value as a sub-cube query in the from clause, rather than placing it in the WHERE clause. 

So instead of having 

 

SELECT x ON 0, y ON 1

FROM <cube>

WHERE ([time].[month].&[z])

 

The pivot grid generates

 

SELECT x ON 0, y ON 1
FROM (SELECT [time].[month].&[z]  FROM <cube>)

 

This is generally fine, but when we have calculated measures in the cube which rely on knowing where you are in the time hierarchy, (i.e. [time].[month].currentmember) then this distorts the calculation because the scope is handled in the sub-cube and the main query believes that [time].[month].currentmember is 'All' rather than Month Z as the query above suggests. 

 

Is there a way to tell the grid to use the former method? Failing that, how can we access the time filter from the calculations? 

 

Polya
Telerik team
 answered on 08 Mar 2017
2 answers
207 views
I want to change to format of the map mouse location indicator to decimal degrees.

In the help it shows how to do this if the indicator is OUTSIDE the map control (http://www.telerik.com/help/wpf/radmap-features-mouse-location.html).

I want to do this with the built-in indicator. How can I do this please?
Luis
Top achievements
Rank 1
 answered on 08 Mar 2017
8 answers
684 views
I try to use RadTreeView in my WPF MVVM Prism 6 application project. But when I put RadTreeView in UserControl area then it is underlined with blue wavy line and if I move the mouse cursor to this line the next error message is displayed: "Object reference not set to an instance of an object". I've added references to the following assemblies: Telerik.Windows.Controls, Telerik.Windows.Controls.Navigation, Telerik.Windows.Controls.Data. But I have the abovementioned error. What the reason of it. Please help me eliminate this error situation.
Martin Ivanov
Telerik team
 answered on 08 Mar 2017
1 answer
132 views
Is it possible to Bind a command while drag and drop? Instead of using code behind?
Martin Ivanov
Telerik team
 answered on 08 Mar 2017
13 answers
515 views

I have a GridViewDataColumn in which I need the cells to use/display a mask both in view/edit mode. In order to do this I have set the CellTemplate and the CellEditTemplate as you can see below. I cannot use the GridViewMaskedInputColumn because it does not allow me to specify different masks per cell. One mask per column will not work in my scenario (see attached picture). 

There is a slight difference between view and edit mode that I would like help with. In edit mode, the RadMaskedTextBox fills the cell, but in view mode, the RadMaskedTextBox does not quite fill the cell. I would like masked textbox to fill the cell regardless of whether it is in edit or view mode.

 

I have considered putting a Margin="3,0,0,0" on the CellEditTemplate, this means the textbox will not fill the cell in either view/edit mode - not idea....

 

<telerik:GridViewDataColumn
    Header="Value"  
    ValidatesOnDataErrors="InEditMode"
    DataMemberBinding="{Binding Value}"
    Width="*">
    <telerik:GridViewDataColumn.CellTemplate>
        <DataTemplate>
            <telerik:RadMaskedTextInput
                Mask="{Binding ValueMask}"
                Value="{Binding Value}"
                TextMode="MaskedText"
                IsEnabled="False"
                SelectionOnFocus="CaretToBeginning"
                IsLastPositionEditable="False"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"/>
        </DataTemplate>
    </telerik:GridViewDataColumn.CellTemplate>
    <telerik:GridViewDataColumn.CellEditTemplate>
        <DataTemplate>
            <telerik:RadMaskedTextInput
                Mask="{Binding ValueMask}"
                Value="{Binding Value}"
                TextMode="MaskedText"
                SelectionOnFocus="CaretToBeginning"
                IsLastPositionEditable="False"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"/>
        </DataTemplate>
    </telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>

 

SB
Top achievements
Rank 1
 answered on 07 Mar 2017
1 answer
194 views

Hi!

There is any way to create custom aggregate for QueryableDataProvider?

I want to create CustomDistinct aggregate, I did it successfully for LocalDataSourceProvider, and I need it also for QueryableDataProvider.

Here is my code, unfortunately, it is not working at all..

Hi!
There is any way to create custom aggregate for QueryableDataProvider?
I want to create CustomDistinct aggregate, I did it successfully for LocalDataSourceProvider, and I neet also for QueryableDataProvider.
Here is my code, unfurtonately, it is not working at all..

I see "CountDistinct" in "More aggregate options" window, but when i choose it, the pivot got an error.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Telerik.Pivot.Core;
using Telerik.Pivot.Core.Fields;
using Telerik.Pivot.Queryable;
 
namespace YA.Pivot.Queryable
{
    public class MyQueryableDataProvider : QueryableDataProvider
    {
        protected override void OnPrepareDescriptionForField(PrepareDescriptionForFieldEventArgs args)
        {
            base.OnPrepareDescriptionForField(args);
            if (args.DescriptionType == DataProviderDescriptionType.Aggregate)
            {
                var old = args.Description as QueryablePropertyAggregateDescriptionBase;
 
                args.Description = new CustomPropertyAggregateDescription()
                {
                    PropertyName = old.PropertyName,
                    FunctionName = old.FunctionName,
                    AggregateFunction = old.AggregateFunction,
                    CustomName = old.CustomName,
                    StringFormat = old.StringFormat
                };
            }
        }
    }
 
    internal class CustomPropertyAggregateDescription : QueryablePropertyAggregateDescriptionBase
    {
        private enum MyAggregateFunctions
        {
            CountDistinct = -100
        }
 
        protected override Cloneable CreateInstanceCore()
        {
            return new CustomPropertyAggregateDescription()
            {
                AggregateFunction = this.AggregateFunction,
                CustomName = this.CustomName,
                FunctionName = this.FunctionName,
                PropertyName = this.PropertyName,
                StringFormat = this.StringFormat,
                StringFormatSelector = this.StringFormatSelector,
                TotalFormat = this.TotalFormat
            };
        }
 
        private bool IsCountDistinct => (int)base.AggregateFunction == (int)MyAggregateFunctions.CountDistinct;
 
        protected override Expression CreateAggregateExpression(Expression enumerableExpression, string aggregatedValueName)
        {
            if (enumerableExpression == null)
            {
                throw new ArgumentNullException(nameof(enumerableExpression));
            }
 
            if (IsCountDistinct)
            {
                return CreateCountDistinctExpression(enumerableExpression, aggregatedValueName);
            }
 
            return base.CreateAggregateExpression(enumerableExpression, aggregatedValueName);
        }
 
        private Expression CreateCountDistinctExpression(Expression enumerableExpression, string aggregatedValueName)
        {
            Type itemType = TypeExtensions.ExtractItemTypeFromEnumerableType(enumerableExpression.Type);
            var selectParamExp = Expression.Parameter(itemType, "e");
            var selectPropAccessExp = Expression.Property(selectParamExp, aggregatedValueName);
            LambdaExpression selectLambdaExpression = Expression.Lambda(selectPropAccessExp, selectParamExp);
 
            var select = Expression.Call(
              typeof(Enumerable),
              "Select",
              new[] { itemType, selectLambdaExpression.Body.Type },
              enumerableExpression,
              selectLambdaExpression);
 
            var distinct = Expression.Call(
                typeof(Enumerable),
                "Distinct",
                new[] { selectLambdaExpression.Body.Type },
                select);
 
            var count = Expression.Call(
                typeof(Enumerable),
                "Count",
                new[] { selectLambdaExpression.Body.Type },
                distinct);
 
            return count;
        }
 
        protected override IEnumerable<object> SupportedAggregateFunctions =>
                base.SupportedAggregateFunctions.Concat(new object[] { MyAggregateFunctions.CountDistinct });
    }
 
    internal static class TypeExtensions
    {
        public static Type ExtractItemTypeFromEnumerableType(Type type)
        {
            var enumerableType = type.FindGenericType(typeof(IEnumerable<>));
 
            if (enumerableType == null)
            {
                throw new ArgumentException("Provided type is not IEnumerable<>", nameof(type));
            }
 
            return enumerableType.GetGenericArguments().First();
        }
 
        private static Type FindGenericType(this Type type, Type genericType)
        {
            while (type != null && type != typeof(object))
            {
                if (type.IsGenericType && type.GetGenericTypeDefinition() == genericType)
                {
                    return type;
                }
 
                if (genericType.IsInterface)
                {
                    foreach (Type intfType in type.GetInterfaces())
                    {
                        Type found = intfType.FindGenericType(genericType);
 
                        if (found != null)
                        {
                            return found;
                        }
                    }
                }
 
                type = type.BaseType;
            }
 
            return null;
        }
    }
}
Polya
Telerik team
 answered on 07 Mar 2017
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
DataPager
PersistenceFramework
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
NavigationView (Hamburger Menu)
Wizard
ExpressionEditor
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
LayoutControl
ProgressBar
Sparkline
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
Callout
PasswordBox
SplashScreen
Localization
Rating
Accessibility
CollectionNavigator
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
InlineAIAssistant
+? more
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jake
Top achievements
Rank 1
RBarnes
Top achievements
Rank 1
Iron
Iron
Rami
Top achievements
Rank 1
Iron
Veteran
Nathan
Top achievements
Rank 1
Kumeri
Top achievements
Rank 1
Iron
Veteran
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?