Telerik Forums
UI for WPF Forum
5 answers
254 views
Hello,

I attach the sources to reproduce the issue. I used Q3 2011. I've a grid bound to a list of items that have a property "Name". This name can be wrapped inside the datatemplate of the gridview column. If you scroll down to the bottom of the grid, the last item is not fully visible (please see attached screenshot for details). In some cases the last item is not visible at all, depending on the size of the wrapped text and the width of the column. I've played with different sizes and was able to reproduce the issue.

We have an application in production and this issue is very important for us.

Notes: In the example, to generate test data I've used "nbuilder" that can be obtained from NuGet.

<Window x:Class="GridViewBug.MainWindow"
        Title="MainWindow"
        WindowState="Maximized"
        WindowStartupLocation="CenterScreen" Loaded="Window_Loaded">
    <telerik:RadGridView ItemsSource="{Binding Items}" Margin="20" AutoGenerateColumns="False">
        <telerik:RadGridView.Columns>
            <telerik:GridViewColumn Width="300" Header="Data">
                <telerik:GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}" TextWrapping="Wrap"  />
                    </DataTemplate>
                </telerik:GridViewColumn.CellTemplate>
            </telerik:GridViewColumn>
        </telerik:RadGridView.Columns>
    </telerik:RadGridView>
</Window>

using System.Windows;
 
namespace GridViewBug
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            DataContext = new MainWindowViewModel();
            ((MainWindowViewModel)DataContext).Test();
        }
    }
}

using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using FizzWare.NBuilder;
using FizzWare.NBuilder.Generators;
 
namespace GridViewBug
{
    public class Stuff
    {
        public string Name { get; set; }
    }
 
    public class MainWindowViewModel : INotifyPropertyChanged
    {
        private PropertyChangedEventHandler _propertyChangedEvent;
        public event PropertyChangedEventHandler PropertyChanged
        {
            add
            {
                _propertyChangedEvent += value;
            }
            remove
            {
                _propertyChangedEvent -= value;
            }
        }
 
        protected virtual void NotifyPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = _propertyChangedEvent;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(name));
            }
        }
 
        private List<Stuff> _items;
        public List<Stuff> Items
        {
            get { return _items; }
            set
            {
                _items = value;
                NotifyPropertyChanged("Items");
            }
        }
 
        public void Test()
        {
            string phrase = GetRandom.Phrase(130);
            Items = Builder<Stuff>.CreateListOfSize(70).All().With(x => x.Name = phrase).Build().ToList();
        }
    }
}


Feedback is appreciated.

Thanks.
Dimitrina
Telerik team
 answered on 26 Sep 2013
5 answers
277 views
Hello,

I'm extending your RadCartesianChart to provide Legend support. Creating them manually is not an option for us (all series are dynamic and mapped to signals configured by user), and we don't want to create user control which will contain RadCartesianChart and Legends because we need to access all properties of RadCartesianChart directly on our control because they will be configurable in external tool.

The problem I've encountered is that RadCartesianChart ignores this template and just takes the width and height of the whole control,
and not the size which was given in this template. In the end I always get legend over the graph area as if I were using Grid for layouting.

How can I resolve this?

Control template I've created for my control is this:

  <ControlTemplate TargetType="{x:Type CartesianChart:ConfigurableCartesianChart}">
                        <DockPanel LastChildFill="True">
                            <Grid Width="{TemplateBinding LegendWidth}"
                                  Height="{TemplateBinding LegendHeight}"
                                  DockPanel.Dock="{TemplateBinding LegendPosition}"
                                  Margin="5">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition />
                                </Grid.RowDefinitions>
                                <TextBlock Margin="2" VerticalAlignment="Center" Text="{TemplateBinding LegendTitle}" />
                                <ItemsControl ItemsSource="{Binding Series}" Grid.Row="1">
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                            <Grid DataContext="{Binding Configuration}">
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="Auto" />
                                                    <ColumnDefinition />
                                                </Grid.ColumnDefinitions>
                                                <Line Width="12" Height="12" X1="0" Y1="6" X2="12" Y2="6" 
                                                      Stroke="{Binding SeriesStrokeColor}" StrokeThickness="2" 
                                                      VerticalAlignment="Center" MaxWidth="100" Margin="5" />
                                                <TextBlock Grid.Column="1" Text="{Binding DisplayName}"
                                                           VerticalAlignment="Center" />
                                            </Grid>
                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                            </Grid>

                            <!--from CartesianChart template-->
                            <Border x:Name="layoutRoot" 
                                    BorderBrush="{TemplateBinding BorderBrush}" 
                                    BorderThickness="{TemplateBinding BorderThickness}" 
                                    Background="{TemplateBinding Background}">
                                <Grid>
                                    <ContentPresenter x:Name="emptyContent" 
                                                      ContentTemplate="{TemplateBinding EmptyContentTemplate}" 
                                                      Content="{TemplateBinding EmptyContent}" 
                                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                                      IsHitTestVisible="False" 
                                                      Visibility="Collapsed"
                                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                    <Canvas x:Name="adornerContainer" 
                                            Background="Transparent" 
                                            HorizontalAlignment="Stretch" 
                                            VerticalAlignment="Stretch">
                                        <Canvas x:Name="labelContainer" 
                                                HorizontalAlignment="Stretch"
                                                VerticalAlignment="Stretch">
                                            <Canvas x:Name="renderSurface" 
                                                    HorizontalAlignment="Stretch" 
                                                    VerticalAlignment="Stretch">
                                                <Border x:Name="plotAreaDecoration" Style="{TemplateBinding PlotAreaStyle}"/>
                                            </Canvas>
                                        </Canvas>
                                    </Canvas>
                                </Grid>
                            </Border>
                         </DockPanel>
                    </ControlTemplate>
Petar Marchev
Telerik team
 answered on 26 Sep 2013
2 answers
143 views
Hi,

I have a problem whith the CustomCommand of the RadMap. 

I use a CustomCommand for Add or remove a WMS provider. 

My problem is the CustomCommand State, when i click the button of the custom command, it is highlighted (this is ok), but when i clicking the button for second time to disable, the button remains highlighted.

Another problem, when i click the button of the custom command, it is highlighted (this is ok), but when i clik another button (ex. road view), the button not remains highlighted.

¿How I can control this?

Thanks and sorry for my english.
Jose Ramon
Top achievements
Rank 1
 answered on 26 Sep 2013
1 answer
154 views
Attached is an image of a rendered RadCartesianChart in which I am trying to overlay a CandlestickSeries on a BarSeries. First, as you can see, the Candlestickseries is horizontally left-aligned. I would like to center that series with respect to the barseries' bars but am having difficulty. Any suggestions? Another problem I am having with the same chart is that the point of the chart is to compare low and high temperatures to the usage. The chart is generating the min y and the max y values for the temperature so the CandletstickSeries may not align vertically with the BarSeries so they can be properly compared. My thought is to allow the user to adjust the temperature chart vertically up and down. To achieve this feature, I would need to get the displayed axis min-y and the displayed axis max-y and add or subtract some value from each. My problems with this is that I don't know how to get and set the displayed min axis y-value and the displayed axis max y-value and would love some suggestions. Here is my XAML so far:
<chart:RadCartesianChart Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3"  x:Name="AccountUsageChart" Height="500" Width="875" VerticalAlignment="Top" HorizontalAlignment="Center">
 
                <chart:RadCartesianChart.HorizontalAxis>
                    <chartView:CategoricalAxis HorizontalAlignment="Center" LabelFitMode="Rotate" Title="{Binding XAxisTitle, Mode=TwoWay}" Foreground="Gray" FontSize="15"/>
                </chart:RadCartesianChart.HorizontalAxis>
 
                <chart:RadCartesianChart.VerticalAxis>
                    <chartView:LinearAxis Title="Usage" ElementBrush="#FF8EC441" FontSize="20"/>
                </chart:RadCartesianChart.VerticalAxis>
 
                <chart:RadCartesianChart.Grid>
                    <chartView:CartesianChartGrid MajorLinesVisibility="Y" />
                </chart:RadCartesianChart.Grid>
 
                <chartView:BarSeries CategoryBinding="XValue" ValueBinding="YValue" ItemsSource="{Binding BindingData}" CombineMode="Stack">
 
                    <telerik:BarSeries.PointTemplate>
                        <DataTemplate>
                            <Rectangle Fill="#FF8EC441"/>
                        </DataTemplate>
                    </telerik:BarSeries.PointTemplate>
 
                </chartView:BarSeries>
 
                <chartView:BarSeries CategoryBinding="XValue" ValueBinding="YValue" ItemsSource="{Binding ProjectedBindingData}" CombineMode="Stack" >
 
                    <telerik:BarSeries.LegendSettings>
                        <telerik:DataPointLegendSettings />
                    </telerik:BarSeries.LegendSettings>
 
                    <telerik:BarSeries.PointTemplate>
                        <DataTemplate>
                            <Rectangle Fill="Gray"/>
                        </DataTemplate>
                    </telerik:BarSeries.PointTemplate>
 
                </chartView:BarSeries>
 
                <chartView:LineSeries Visibility="{Binding ShowLineSeriesTempChart, Converter={StaticResource boolToVisibility}}" CategoryBinding="XValue" ValueBinding="Temp" ItemsSource="{Binding BindingData}" Stroke="#FF1B9DDE" >
                    <chartView:LineSeries.VerticalAxis>
                        <chartView:LinearAxis Title="{Binding TemperatureAxisTitle, Mode=TwoWay}"
                                              ElementBrush="#FF1B9DDE"
                                              HorizontalLocation="Right"
                                              Visibility="{Binding ShowLineSeriesTempChart, Converter={StaticResource boolToVisibility}}"
                                              IsInverse="{Binding FlipTempYAxisVertically, Mode=TwoWay}" />
                    </chartView:LineSeries.VerticalAxis>
                </chartView:LineSeries>
 
                <chartView:CandlestickSeries ItemsSource="{Binding BindingData}"
                                             CategoryBinding="XValue"
                                             LowBinding="LowTemp"
                                             HighBinding="HighTemp"
                                             OpenBinding="LowTemp"
                                             CloseBinding="HighTemp"
                                             Visibility="{Binding ShowCandleStickTempChart, Converter={StaticResource boolToVisibility}}" >
                     
                    <chartView:CandlestickSeries.DefaultVisualStyle>
                        <Style TargetType="chartView:Candlestick">
                            <Setter Property="MaxWidth" Value="10"/>
                            <Setter Property="HorizontalAlignment" Value="Center"/>
                            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Visible"/>
                            <Setter Property="UpFill" Value="#FF1B9DDE"/>
                            <Setter Property="UpStroke" Value="#FF1B9DDE"/>
                            <Setter Property="DownFill" Value="#FF1B9DDE"/>
                            <Setter Property="DownStroke" Value="#FF1B9DDE"/>
                        </Style>
                    </chartView:CandlestickSeries.DefaultVisualStyle>
                     
                    <chartView:CandlestickSeries.VerticalAxis>
                         
                        <chartView:LinearAxis Title="{Binding TemperatureAxisTitle, Mode=TwoWay}"
                                              Visibility="{Binding ShowCandleStickTempChart, Converter={StaticResource boolToVisibility}}"
                                              ElementBrush="#FF1B9DDE"
                                              HorizontalLocation="Right"/>
                         
                         
                    </chartView:CandlestickSeries.VerticalAxis>
                     
                </chartView:CandlestickSeries>
                 
                <telerik:RadCartesianChart.Behaviors>
                    <telerik:ChartSelectionBehavior DataPointSelectionMode="Single" >
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="SelectionChanged">
                                <ei:CallMethodAction MethodName="Bar_SelectionChanged"
                                            TargetObject="{Binding}"
                                            IsEnabled="True" />
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </telerik:ChartSelectionBehavior>
                </telerik:RadCartesianChart.Behaviors>
             
            </chart:RadCartesianChart>
Petar Kirov
Telerik team
 answered on 26 Sep 2013
0 answers
86 views
Hi 

I want to insert the symbols or any charecter before and after selected text.

Is there any easy way to perform this task.


Thanks
Sopan Vaidya
Sopan
Top achievements
Rank 1
 asked on 26 Sep 2013
1 answer
64 views
Hi

when using the mouse wheel, It is perfectly possible to change the content when the mouse cursor is over the control.
but, Is it possible to enable mouse wheel scrolling when the mouse cursor is not directly over the numericupdown control? assuming the control did not lose focus of course.

thanks.
Vladi
Telerik team
 answered on 26 Sep 2013
1 answer
625 views

I use the RadComboBox from Telerik in a WPF project.

My Problem is that the selected text is not updated when the selected item changes its value. So when the ViewModel changes the `Name` property of the `SelectedItem`, I can not see this in the RadComboBox.

Note: The `SelectedItem` implements `INotifyPropertyChanged` and is calling the event.


Full source code:


public class MainViewModel : INotifyPropertyChanged
{
    private readonly List<Item> _items = new List<Item>();
    private Item _selectedItem;
 
    public MainViewModel()
    {
        _items.Add(new Item { Name = "Eg Zomh JywS" });
        _items.Add(new Item { Name = "Ua Qvp Lavwz" });
        _items.Add(new Item { Name = "Nee Lzx Rdaq" });
        _items.Add(new Item { Name = "Um Ztgi Yvsg" });
        _items.Add(new Item { Name = "tma Oppt fzd" });
        _items.Add(new Item { Name = "Du Zofcy Fbs" });
        _items.Add(new Item { Name = "bc Ey Ppvvcp" });
        _items.Add(new Item { Name = "Mv RSIZtf WE" });
        _items.Add(new Item { Name = "BFb YYZ PHwC" });
        _items.Add(new Item { Name = "YSW LQ DXxHu" });
    }
 
    public event PropertyChangedEventHandler PropertyChanged;
 
    public IEnumerable<Item> Items { get { return _items; } }
 
    public Item SelectedItem
    {
        get { return _selectedItem; }
        set
        {
            _selectedItem = value;
            OnPropertyChanged("SelectedItem");
            OnPropertyChanged("SelectedItemName");
        }
    }
 
    public string SelectedItemName
    {
        get { return _selectedItem != null ? _selectedItem.Name : null; }
        set
        {
            if (_selectedItem != null)
            {
                _selectedItem.Name = value;
                OnPropertyChanged("SelectedItemName");
            }
        }
    }
 
    protected virtual void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}


 

public class Item : INotifyPropertyChanged
{
    private string _name;
 
    public event PropertyChangedEventHandler PropertyChanged;
 
    public string Name
    {
        get { return _name; }
        set
        {
            _name = value;
            OnPropertyChanged("Name");
        }
    }
 
    protected virtual void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}


 

<Window x:Class="TelerikRadComboBoxProblem.MainWindow"
        Title="MainWindow" Height="150" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
         
        <TextBlock Text="Search: " VerticalAlignment="Center" />
        <telerik:RadComboBox Grid.Row="0" Grid.Column="1"
            ItemsSource="{Binding Items, Mode=OneWay}"
            SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
            StaysOpenOnEdit="True"
            DisplayMemberPath="Name"
            CanAutocompleteSelectItems="False"
            IsEditable="True"
            IsReadOnly="False"
            OpenDropDownOnFocus="True"
            IsFilteringEnabled="True"
            TextSearchMode="Contains">
        </telerik:RadComboBox>
         
        <TextBlock Grid.Row="1" Grid.Column="0" Text="Rename: " VerticalAlignment="Center" />
        <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding SelectedItemName, Mode=TwoWay}" />
 
    </Grid>
</Window>


 

public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new MainViewModel();
    }
}

Rosen Vladimirov
Telerik team
 answered on 26 Sep 2013
1 answer
54 views
In the teleric grid when i press the up and down arrow the selection is not working it's selecting alternative rows.
Yordanka
Telerik team
 answered on 26 Sep 2013
5 answers
236 views

Hello Telerik,


I am using version 2013.2.724.40 and I have the following problem. I’m working on an MVVM WPF application. It is a multi-thread application which draws data form a postgres db, displays the data and writes them in to a SQL EXPRESS DB. In one (two) View(s) the data can be displayed and manipulate in a RadGridView this is directly bound to a QueryableEntityCollectionView<>, I’m using the Microsoft Entity Framework.


Occasionally and absolutely not reproducible, but nonetheless too often I get an unhandled EntityCommandExecutionException, mostly when the user push a button to change the View. The Inner Exception is "A severe error occurred on the current command.  The results, if any, should be discarded.". If this occurs in the Debugger and when I have a look at the stack, it looks like in the attached picture.


I have the suspicion that comes from the QueryableEntityCollectionView<> bound to the RadGridView, but I have no idea how to prevent this and/or on which place I should enclose some code with a try catch block.
As you can see in the stack none of my functions or classes are involved.


May be someone have an idea.


Regards Uwe

Rossen Hristov
Telerik team
 answered on 26 Sep 2013
2 answers
139 views
Hi,

Is it possible to have a drill down option for  horizontal bar chart in WPF ?

If yes please provide me the sample code.

Thanks,
Ramya
Ruth
Top achievements
Rank 1
 answered on 26 Sep 2013
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
Top achievements
Rank 1
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ivory
Top achievements
Rank 1
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
YF
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Top achievements
Rank 1
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ivory
Top achievements
Rank 1
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
YF
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?