Telerik Forums
UI for WPF Forum
0 answers
282 views

I'm trying to create a custom column for my RadGridView, where upon editing the cell, an appropriate control is shown - A combobox for a boolean or an enumeration, a RadMaskedTextInput for text, and a RadMaskedNumericInput for numeric values.

I'm using the RadMaskedNumericInput as I need to set maximum and minimum values, and I've seen the samples of how to set minimum & maximum values for the RadMaskedNumericInput when in xaml, by using something like:

 <telerik:RadMaskedNumericInput maskedInput:MaskedInputExtensions.Minimum="0" /> 

However, as I'm creating the control dynamically in the Custom Column class, I can't find a way of doing the same in code? i.e. as part of creating the control using "RadMaskedNumericInput numericTb = new RadMaskedNumericInput();" I also have the same issue in trying to set the Min & Max length extensions for the RadMaskedTextInput control. 

Thanks

Ian
Top achievements
Rank 1
 asked on 02 Jun 2021
0 answers
606 views

Hello to all,

I have a new problem in the latest version of Telerik UI for WPF with the RadGridView control.

I get sporadic a NullReferenceException when I work with the control. Unfortunately it is not reproducible.

Hopefully someone can help me. Thank you in advance.

Here is the call stack of the exception:

Description: The process was terminated due to an unhandled exception.

Exception Info: System.NullReferenceException

   at Telerik.Windows.Controls.GridView.CommonColumnHeaderInfo.<get_MaxWidth>b__a(Telerik.Windows.Controls.GridViewColumn)

   at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()

   at System.Linq.Enumerable.Sum(System.Collections.Generic.IEnumerable`1<Double>)

   at Telerik.Windows.Controls.GridView.CommonColumnHeaderInfo.get_MaxWidth()

   at Telerik.Windows.Controls.GridView.GridViewCellsPanel.RealizeAndMeasureCells(Int32, Int32, System.Func`2<Int32,Int32>)

   at Telerik.Windows.Controls.GridView.CommonColumnHeadersPanel.UpdateVirtualizedCells()

   at Telerik.Windows.Controls.GridView.GridViewCellsPanel.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)

   at System.Windows.Controls.ItemsPresenter.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.GridView.GridViewRowItem.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at Telerik.Windows.Controls.GridView.CommonHeaderPresenter+VirtualizingStrategy.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.GridView.CommonHeaderPresenter.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureCell(Int32, Boolean)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean, Boolean ByRef)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.GridView.GridViewRowItem.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.GridView.GridViewHeaderRow.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureCell(Int32, Boolean)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean, Boolean ByRef)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.ScrollViewer.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.GridView.GridViewScrollViewer.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureCell(Int32, Boolean)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean, Boolean ByRef)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.GridView.GridViewDataControl.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.DockPanel.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)

   at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)

   at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureCell(Int32, Boolean)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean, Boolean ByRef)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at Telerik.Windows.Controls.ProportionalStackPanel.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)

   at System.Windows.Controls.ItemsPresenter.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)

   at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at Telerik.Windows.Controls.RadDockPanel.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.DockingPanel.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at Telerik.Windows.Controls.RadDockPanel.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Control.MeasureOverride(System.Windows.Size)

   at Telerik.Windows.Controls.RadDocking.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.DockPanel.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

  at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Grid.MeasureCell(Int32, Boolean)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean, Boolean ByRef)

   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32, System.Windows.Size, Boolean, Boolean)

   at System.Windows.Controls.Grid.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at MS.Internal.Helper.MeasureElementWithSingleChild(System.Windows.UIElement, System.Windows.Size)

   at System.Windows.Controls.ContentPresenter.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Documents.AdornerDecorator.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Controls.Border.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.Window.MeasureOverrideHelper(System.Windows.Size)

   at System.Windows.Window.MeasureOverride(System.Windows.Size)

   at System.Windows.FrameworkElement.MeasureCore(System.Windows.Size)

   at System.Windows.UIElement.Measure(System.Windows.Size)

   at System.Windows.ContextLayoutManager.UpdateLayout()

   at System.Windows.UIElement.UpdateLayout()

   at System.Windows.Interop.HwndSource.SetLayoutSize()

   at System.Windows.Interop.HwndSource.set_RootVisualInternal(System.Windows.Media.Visual)

   at System.Windows.Interop.HwndSource.set_RootVisual(System.Windows.Media.Visual)

   at System.Windows.Window.SetRootVisual()

   at System.Windows.Window.SetRootVisualAndUpdateSTC()

   at System.Windows.Window.SetupInitialState(Double, Double, Double, Double)

   at System.Windows.Window.CreateSourceWindow(Boolean)

   at System.Windows.Window.CreateSourceWindowDuringShow()

   at System.Windows.Window.SafeCreateWindowDuringShow()

   at System.Windows.Window.ShowHelper(System.Object)

   at System.Windows.Window.Show()

   at System.Windows.Window.ShowDialog()

   at Telerik.Windows.Controls.InternalWindow.WindowWithNoChromeWindowHost.Open(Boolean)

   at Telerik.Windows.Controls.WindowBase.ShowWindow(Boolean)

   at Telerik.Windows.Controls.RadWindow.ShowDialog()

   at SELMOstudio.App.Target(System.Object, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)

   at System.Windows.Threading.Dispatcher.CatchException(System.Exception)

   at System.Windows.Threading.Dispatcher.CatchExceptionStatic(System.Object, System.Exception)

   at System.Windows.Threading.ExceptionWrapper.CatchException(System.Object, System.Exception, System.Delegate)

   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)

   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)

   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)

   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr, IntPtr, Int32, IntPtr, IntPtr)

   at MS.Win32.HwndSubclass.DefWndProcWrapper(IntPtr, Int32, IntPtr, IntPtr)

   at MS.Win32.UnsafeNativeMethods.CallWindowProc(IntPtr, IntPtr, Int32, IntPtr, IntPtr)

   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)

 

The columns will be added programmatically in code behind:

                m_dgOperands.Columns.Clear();
                selectedColumn = null;

                //Add the known columns 
                m_dgOperands.Columns.Add(new GridViewDataColumn()
                {
                    Header = "#",
                    DataMemberBinding = new Binding("ID"),
                    IsReadOnly = true,
                    CellStyleSelector = new StepStyleSelector(),
                });

                m_dgOperands.Columns.Add(new GridViewDataColumn()
                {
                    Header = "Step",
                    DataMemberBinding = new Binding("Name"),
                    //IsReadOnly = true,
                    CellStyleSelector = new StepStyleSelector(),
                    MinWidth = 150,
                });

                columnGroupName = new GridViewDataColumn();
                columnGroupName.Header = "GroupName";
                columnGroupName.DataMemberBinding = new Binding("GroupName");
                columnGroupName.GroupMemberPath = "GroupName";
                columnGroupName.CellStyleSelector = new StepStyleSelector();
                m_dgOperands.Columns.Add(columnGroupName);

                m_dgOperands.Columns.Add(new GridViewDataColumn()
                {
                    Header = "Info",
                    DataMemberBinding = new Binding("InfoText"),
                    IsReadOnly = true,
                    CellStyleSelector = new StepStyleSelector(),
                    CellTemplate = (DataTemplate)base.Resources["GridViewCellImageTextTemplate"],
                });

                m_dgOperands.Columns.Add(new GridViewDataColumn()
                {
                    Header = "",
                    IsReadOnly = true,
                    Width = 3,
                    MaxWidth = 3,
                    IsResizable = false
                });

                m_dgOperands.FrozenColumnCount = 4;

                foreach (var zone in seq.Zones)
                {
                    var item = new GridViewDataColumn();
                    item.UniqueName = zone.ID.ToString();
                    item.Header = zone.Name;
                    item.Footer = zone.Name;
                    item.DataMemberBinding = new Binding("ZoneValues[" + zone.ZoneValueIndex + "]");
                    item.Tag = zone;
                    item.CellStyleSelector = new ZoneStyleSelector();
                    item.IsVisible = zone.Visible;

                    CheckColumnGroup(zone, item);
                    m_dgOperands.Columns.Add(item);

                    SetZoneHeaderStyle(zone);
                    SelmoCreatorSequence_PropertyChanged(zone, new PropertyChangedEventArgs("ShowSystemZone"));
                }

                m_dgOperands.ItemsSource = seq.Steps;

cwider
Top achievements
Rank 1
Iron
 asked on 02 Jun 2021
2 answers
464 views

I did all I can Still I cannot take away the line spacing after hitting  "Enter", I could not get it working  (looks like the DocumentInheritsDefaultStyleSettings  is interfering?)

I have uploaded a sample project (that tells the behavior) as well.

 

Please find the code I used below.

                                <telerik:RadRichTextBox x:Name="custNotesRichTextBox"
                                                        Grid.Row="0"
                                                        DocumentInheritsDefaultStyleSettings="True"                                                     
                                                        AcceptsTab="True"
                                                        AcceptsReturn="True"                                                         
                                                        ScrollViewer.VerticalScrollBarVisibility="Auto"
                                                        HorizontalScrollBarVisibility="Hidden"                                                        
                                                        IsSpellCheckingEnabled="True"
                                                        Language="en-US"
                                                        IsContextMenuEnabled="True"                                                        
                                                        Margin="0"
                                                        VerticalScrollBarVisibility="Hidden">
                                    <telerik:RadRichTextBox.Document>
                                    <telerik:RadDocument LineSpacing="0" LineSpacingType="AtLeast" ParagraphDefaultSpacingAfter="0" ParagraphDefaultSpacingBefore="0" >
                                        <telerik:Section>
                                                <telerik:Paragraph LineSpacing="0" LineSpacingType="AtLeast" SpacingBefore="0" SpacingAfter="0" AutomaticSpacingBefore="False" AutomaticSpacingAfter="False" >
                                                <telerik:Span  Text=" "/>
                                            </telerik:Paragraph>
                                        </telerik:Section>
                                    </telerik:RadDocument>
                                    </telerik:RadRichTextBox.Document>
                                    </telerik:RadRichTextBox>
Dimitar
Telerik team
 answered on 02 Jun 2021
1 answer
127 views

Hi,

I am having an issue with RadDiagramConnections not binding from the source to the target on RadTabItems after the 1st tab. Here is my UserControl layout.

  1. I have UserControl with a RadTabControl with 2 RadTabItems.
  2. Each RadTabItem contains a RadDiagram (each with multiple RadDiagramShapes and RadDiagramConnections).

The 1st RadTabItem Diagram loads as it should (no issues). The 2nd RadTabItem diagram only loads the shapes and not the connections. During initialization of the software, Visual Studio Output window shows "Cannot find source for binding with reference" for all of the connections on the 2nd diagram. How do I get the Connections to load properly? 

Martin Ivanov
Telerik team
 answered on 02 Jun 2021
1 answer
87 views
I can create Chart view showing pass or fail  but I need something which also shows a blur red color behind the bar indicating an intense bad  situation  base on the data , as example you can see in the attached image. Is it possible using WPF toolset?
Martin Ivanov
Telerik team
 answered on 02 Jun 2021
1 answer
66 views

Hi.. 

I'm trying to implement a Custom Filter for a computed column in RadGridView.

The computed column is simply a Year-range eg: "2010-2015" - i want to filter all rows that contains a given year, eg: 2013.

Tthe computed column is using this type, where i've added the IEquitable interface. 

public class YearRange : IEquatable<int>
{
    public int FromYear { get; set; }

    public int ToYear { get; set; }

    public override string ToString()
    {
        return FromYear + "-" + ToYear;
    }

    public bool Equals(int other)
    {
        return FromYear >= other && other <= ToYear;
    }
}

The CustomGridFilter is implemented like this, where i've copied the telerik sample and modified it a bit. 

public partial class CustomGridFilter : UserControl, IFilteringControl
    {
        private GridViewBoundColumnBase column;
        private CompositeFilterDescriptor compositeFilter;
        private FilterDescriptor rangeFilter;

        #region IsActive DependencyProperty 
        public bool IsActive
        {
            get { return (bool)GetValue(IsActiveProperty); }
            set { SetValue(IsActiveProperty, value); }
        }

        public static readonly DependencyProperty IsActiveProperty =
            DependencyProperty.Register(
                "IsActive",
                typeof(bool),
                typeof(CustomGridFilter),
                new PropertyMetadata(false));
        #endregion

        #region Aargang DependencyProperty 

        public int Aargang
        {
            get { return (int)GetValue(AargangProperty); }
            set { SetValue(AargangProperty, value); }
        }

        public static readonly DependencyProperty AargangProperty =
            DependencyProperty.Register(
                "Aargang",
                typeof(int),
                typeof(CustomGridFilter),
                new PropertyMetadata(0)
            );

        #endregion

        public CustomGridFilter()
        {
            InitializeComponent();

            DataContext = this;
        }

        public void Prepare(Telerik.Windows.Controls.GridViewColumn column)
        {
            this.column = column as GridViewBoundColumnBase;

            if (this.column == null)
            {
                return;
            }

            if (compositeFilter == null)
            {
                CreateFilters();
            }
        }

        private void CreateFilters()
        {
            string dataMember = column.DataMemberBinding.Path.Path;

            compositeFilter = new CompositeFilterDescriptor();

            rangeFilter = new FilterDescriptor(dataMember, FilterOperator.IsEqualTo, null);

            compositeFilter.FilterDescriptors.Add(rangeFilter);
        }

        private void OnFilter(object sender, RoutedEventArgs e)
        {
            rangeFilter.Value = Aargang;

            if (!column.DataControl.FilterDescriptors.Contains(compositeFilter))
            {
                column.DataControl.FilterDescriptors.Add(compositeFilter);
            }

            IsActive = true;

            var popup = this.ParentOfType<System.Windows.Controls.Primitives.Popup>();
            if (popup != null)
            {
                popup.IsOpen = false;
            }
        }

        private void OnClear(object sender, RoutedEventArgs e)
        {
            if (column.DataControl.FilterDescriptors.Contains(compositeFilter))
            {
                column.DataControl.FilterDescriptors.Remove(compositeFilter);
            }

            Aargang = 0;

            IsActive = false;

            var popup = this.ParentOfType<System.Windows.Controls.Primitives.Popup>();
            if (popup != null)
            {
                popup.IsOpen = false;
            }
        }
    }

The XAML is simply a textbox bound to the Aargang DependencyProperty which is functioning correctly considering the error message. 

My assumption is that IEquiatable<int> is supposed to execute the FilterOperator.IsEqualTo comparison ?

Why does it fail ?

EDIT: 

Debugging the "solution" from this question, https://www.telerik.com/forums/problem-with-custom-filter-with-custom-type - i've found that IEquatable is used for the GetDistinctValues operation while the ACTUAL comparison uses standard override Equals operator ... FFS... 

 

Martin
Top achievements
Rank 2
Iron
Iron
Iron
 answered on 01 Jun 2021
1 answer
415 views

The item source of this gridview is bound to a DataTable programmatically. The amount of columns change depending on how many days the user wants to see. I need all of the Date cells to have a foreground (Text colour) of red if they do not equal the number in the expected column.

I have tried many ways of accomplishing this but nothing seems to work.

Thank you in advance.

Dilyan Traykov
Telerik team
 answered on 01 Jun 2021
7 answers
313 views
Hey All!  I have a RadGridView with several GridViewComboBoxColumns.  I am trying to Enable/Disable and modify the ItemsSource of one of the GridViewComboBoxColumns based off of what the other's selected value is for the current row only.  I can access that column, however it is for every row and not the current row.  How can I access that column control on the current row?
Vladimir Stoyanov
Telerik team
 answered on 01 Jun 2021
0 answers
134 views

Hello,

I am using the same code and the fallowing template displaying Binary info 

:

 <DataTemplate DataType="{x:Type viewModels:GraphElementViewModelDigital}">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition  Width="Auto"/>
                <ColumnDefinition  MinWidth="100"/>

            </Grid.ColumnDefinitions>


            <telerik:RadCartesianChart x:Name="CartesianChart"                                      
                                       Grid.Column="1"
                                       VerticalAlignment="Center"
                                       HorizontalAlignment="Stretch"
                                       MinHeight="40"
                                       Margin="0,5,0,4">
                <!--<telerik:RadCartesianChart.Behaviors>
                    <telerik:ChartPanAndZoomBehavior ZoomMode="Both"/>
                    <telerik:ChartTrackBallBehavior ShowIntersectionPoints="True"
                                                    ShowTrackInfo="True"
                                                    SnapMode="AllClosePoints"/>

                </telerik:RadCartesianChart.Behaviors>-->
                <telerik:RadCartesianChart.Series>
                    <telerik:StepLineSeries 

                        CategoryBinding="DateTimeCategory"
                        ValueBinding="Value"
                        Stroke="White"
                        ItemsSource="{Binding ChartData}">
                        <!--<telerik:StepLineSeries.Style>
                            <Style TargetType="telerik:StepLineSeries">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding ElementKind}" Value="Command">
                                        <Setter Property="Stroke" Value="{StaticResource ElementGreenHeaderForeground}"></Setter>
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding ElementKind}" Value="Report">
                                        <Setter Property="Stroke" Value="{StaticResource ElementBlueHeaderForeground}"></Setter>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </telerik:StepLineSeries.Style>-->

                    </telerik:StepLineSeries>


                </telerik:RadCartesianChart.Series>

                <telerik:RadCartesianChart.HorizontalAxis>
                    <telerik:DateTimeContinuousAxis Visibility="Hidden"
                                                    Minimum="{Binding NewDateTime }" 
                                                    Maximum="{Binding MaxDateTime}" 
                                                  />
                </telerik:RadCartesianChart.HorizontalAxis>

                <telerik:RadCartesianChart.VerticalAxis>
                    <telerik:LinearAxis Visibility="Hidden" 
                                        Minimum="0" 
                                        Maximum="1" 
                                       />
                </telerik:RadCartesianChart.VerticalAxis>

            </telerik:RadCartesianChart>
            <StackPanel Orientation="Horizontal"
                        Grid.Column="0">

                <TextBlock 
                    Foreground="WhiteSmoke"
                    Margin="5,0,10,5"
                    Text="{Binding ElementPhysicalUnitsLabel}"
                    x:Name="ElementPhysicalUnitsLabel"/>

                <TextBlock 
                    Text="{Binding Value}"
                    FontWeight="Bold"
                    FontSize="15"
                    Foreground="WhiteSmoke"/>

            </StackPanel>

        </Grid>
    </DataTemplate>

 

The visibility of the line is different:

for windows  10 as image t3 user see only changes from 0 to 1 or 1 to 0. 

while in windows 7 t4 you can see the ChartData as a line indicating value of the graph and changes in value.

Any help will be appreciated

Sarit Harel  

                        
Hen
Top achievements
Rank 1
Veteran
 asked on 01 Jun 2021
1 answer
164 views

I have a GridView that display about 110K rows of data ... 

One of the columns needs to contain a DateRange or Year-Range as shown in the attached picture.

Currently the data is a string "2012-2015" - i can change this if needed. 

Is  is possible to filter for years that are equal or between two years ? 

eg: I want to find rows that were active in 2014 - meaning all rows that contain a range that includes 2014 : eg "2013-2015"

Any help is appreciated :) 

Martin
Top achievements
Rank 2
Iron
Iron
Iron
 answered on 01 Jun 2021
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
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
PasswordBox
SplashScreen
Callout
Rating
Accessibility
CollectionNavigator
Localization
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
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?