Telerik Forums
UI for WPF Forum
9 answers
499 views
I have a project, which I'm updating to use the Telerik controls. As part of this, I have changed a standard ListView into a Telerik GridView. However, I have come across a problem.

The gridview consists of a number of row bound to an observable list, each of which has a RowDetails template, showing another list of information in a ListBox. Double clicking on the items in the list box performs an action, based on the selected row in the gridview (using a binding on the SelectedItem).

Previously, when selecting an item in the rowdetails, the listview grid would also select the parent row in the grid, thereby allowing our code to work. However, with the telerik gridview, selecting an item in the listbox DOES NOT select the parent row. As such, the selecteditem is either wrong or null, so the code fails.

Is there a way to make the selected grid row reflect the currently focused listbox in the details?

Cheers
Jason
Mark
Top achievements
Rank 1
 answered on 20 Nov 2014
2 answers
65 views
We would like to add a Status column to our grid that has a colored box for each of the different boolean flags that have been set on a row.  

The table has AutoGenerateColunns set to true right now so all of the fields show up as check boxes.  We want to merge them all into one column with a title of Status.  We would love if we could duplicate this:



Any guidance on what control(s) to use?  
Boris
Telerik team
 answered on 20 Nov 2014
9 answers
500 views
When the expander is expanded, it does not cover up the controls underneath.  Both the content of the expander and the controls "covered" by the expansion are visible. 

How can I "hide" controls on the form when the expander is expanded?  Is there a property on the expander that I'm not seeing?
Valerio
Top achievements
Rank 1
 answered on 20 Nov 2014
4 answers
111 views
I'm facing problems with TileList, I want to allow the user to change the tile size at runtime. When you change the tile size (tiletype) pragmatically, in a random manner the tile size and UI got corrupted.

To reproduce the problem:

XAML CODE:


<Window x:Class="MainWindow"
        Title="MainWindow" Height="625" Width="1300" WindowState="Maximized">
    <Grid>
        <Grid.Resources>
            <Style TargetType="TextBlock" x:Key="TileLabelStyle">
                <Setter Property="FontSize" Value="14" />
                <Setter Property="FontFamily" Value="Segoe UI" />
                <Setter Property="Margin" Value="0" />
                <Setter Property="VerticalAlignment" Value="Top"/>
            </Style>
        </Grid.Resources>
        <Grid.RowDefinitions>
            <RowDefinition Height="35"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button Content="All Small" Grid.Row="0" Click="Button_Click" HorizontalAlignment="Left" Width="96" />
        <Button Content="All Double" Grid.Row="0" Margin="101,0,0,0" Click="Button_Click_1" HorizontalAlignment="Left" Width="96" />
        <Button Content="All Quadruple" Grid.Row="0" Margin="202,0,0,0" Click="Button_Click_2" HorizontalAlignment="Left" Width="96" />
        <telerik:RadTileList IsManipulationEnabled="True" TilePlaceHolderSide="150" ScrollViewer.HorizontalScrollBarVisibility="Visible" CanUserSelect="False" x:Name="MainTileList" Grid.Row ="1">
            <telerik:Tile TileType="Single" Background="Bisque">
                <Grid >
                    <TextBlock Text="Single" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Single">
                <Grid >
                    <TextBlock Text="Single" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Single">
                <Grid >
                    <TextBlock Text="Single" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Double"  Background="DarkRed">
                <Grid >
                    <TextBlock Text="Double" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Double">
                <Grid >
                    <TextBlock Text="Double" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Quadruple">
                <Grid >
                    <TextBlock Text="Quadruple" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Double"  Background="Coral">
                <Grid >
                    <TextBlock Text="Double" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Double">
                <Grid >
                    <TextBlock Text="Double" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Single">
                <Grid >
                    <TextBlock Text="Single" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Double"  Background="DeepPink">
                <Grid >
                    <TextBlock Text="Double" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Double">
                <Grid >
                    <TextBlock Text="Double" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Single"  Background="DarkViolet">
                <Grid >
                    <TextBlock Text="Single" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Quadruple" Background="Green">
                <Grid >
                    <TextBlock Text="Quadruple" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Single"   Background="DarkSalmon">
                <Grid >
                    <TextBlock Text="Single" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
 
            <telerik:Tile TileType="Quadruple"  Background="MidnightBlue">
                <Grid >
                    <TextBlock Text="Quadruple" Style="{StaticResource TileLabelStyle}"/>
                </Grid>
            </telerik:Tile>
        </telerik:RadTileList>
    </Grid>
</Window>

VB Code:

Imports Telerik.Windows.Controls
 
Class MainWindow
 
    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
 
        Dim MainContextMenu As New ContextMenu
 
        Dim smallMenuItem As New MenuItem With {.Header = "Small"}
        Dim wideMenuItem As New MenuItem With {.Header = "Wide"}
        Dim largeMenuItem As New MenuItem With {.Header = "Large"}
 
        MainContextMenu.Items.Add(smallMenuItem)
        MainContextMenu.Items.Add(wideMenuItem)
        MainContextMenu.Items.Add(largeMenuItem)
 
        AddHandler smallMenuItem.Click, AddressOf SmallSizeClick
        AddHandler wideMenuItem.Click, AddressOf WideSizeClick
        AddHandler largeMenuItem.Click, AddressOf LargeSizeClick
 
        For Each c As Tile In MainTileList.Items
            c.ContextMenu = MainContextMenu
        Next
    End Sub
 
    Private Sub SmallSizeClick(sender As Object, e As RoutedEventArgs)
        Dim tile = DirectCast(DirectCast(DirectCast(sender, MenuItem).Parent, ContextMenu).PlacementTarget, Tile)
        tile.TileType = TileType.Single
    End Sub
 
    Private Sub WideSizeClick(sender As Object, e As RoutedEventArgs)
        Dim tile = DirectCast(DirectCast(DirectCast(sender, MenuItem).Parent, ContextMenu).PlacementTarget, Tile)
        tile.TileType = TileType.Double
    End Sub
 
    Private Sub LargeSizeClick(sender As Object, e As RoutedEventArgs)
        Dim tile = DirectCast(DirectCast(DirectCast(sender, MenuItem).Parent, ContextMenu).PlacementTarget, Tile)
        tile.TileType = TileType.Quadruple
    End Sub
 
    Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
        For Each t As Tile In MainTileList.Items
            t.TileType = TileType.Single
        Next
    End Sub
 
    Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
        For Each t As Tile In MainTileList.Items
            t.TileType = TileType.Double
        Next
    End Sub
 
    Private Sub Button_Click_2(sender As Object, e As RoutedEventArgs)
        For Each t As Tile In MainTileList.Items
            t.TileType = TileType.Quadruple
        Next
    End Sub
End Class

Run the application:

1- Click on "All SMALL" button to set all tile to single
2- Try to reorder some tiles
3- Click on "All Quadruple"

You may notice that some tiles size looks like single while it is Quadruple. (see the attached images)

Also another problem, I'm not able to figure out how the tile reorder is working, sometime I drag drop a tile it does not move, sometime it works! if I drag over another tile sometimes work some time not, Very inconsistent not similar to the windows 8 tiles, I don't think I can use it with production environment. Please advise.

Maya
Telerik team
 answered on 20 Nov 2014
4 answers
150 views
Hello,
I'm creating datagrid with dynamically created columns. The ViewModel looks like:
public string this[Guid column]
 {     
    get { ....}
    
set { ... }
}

And I create columns this way:
GridViewDataColumn col = new GridViewDataColumn();<br>
col.Header = c.Column.Name;<br>
col.DataMemberBinding = new Binding(String.Format("[{0}]", c.Column.Id)) { FallbackValue = null };
col.ColumnGroupName = g.Header;
 
this.Columns.Add(col);


I had some problems - sorting (fixed by custom ICollectionView link) but now I have issue with filtering. When i try to filter, grid becomes empty. And also I cannot see list with checkboxes to select desired values (like for normal column bound to string property).

Is there anything I can do with that? ICollectionView  has filter property, but it's not used in Telerik Datagrid (?).
Przemysław
Top achievements
Rank 1
 answered on 20 Nov 2014
3 answers
114 views
Hello,

I have no explicit style on my DataPager

<telerik:RadDataPager x:Name="radDataPager" Source="{Binding Items, ElementName=customersBox}" />

but the previous and next buttons are empty, why? They are clickable but I need a hint what happens when the button is clicked.

Regards,
Ylva
Vanya Pavlova
Telerik team
 answered on 20 Nov 2014
1 answer
108 views
Hi, 

I'm using the RadMap component with the OpenStreetMapProvider.
I wanted to know if it is possibile to know the name of the street given a point on the map.

Thx in advance

Davide
Petar Mladenov
Telerik team
 answered on 20 Nov 2014
14 answers
334 views
When a RadGridView's ItemSource is bound to a VirtualQueryableCollectionView, user navigation in the RadGridView causes the VirtualQueryableCollectionView to accumulate loaded objects.  From a memory management perspective we would like to be able to unload objects from the VirtualQueryableCollectionView - for example, we may want to unload anything outside the range of current row index +- 500 on an ongoing basis to limit our memory footprint.

The use case for this is any application where the user operates iteratively on a large set of large objects.  When moving down the list in the RadGridView, processed rows are never viewed again yet their associated objects remain in memory unavailable to the Garbage Collector. 

Unloading these objects from the collection should result in the objects being re-fetched by the ItemsLoading event handler if they are required for subsequent display in the RadGridView.

There appears to be no mechanism for identifying which items should and should not be unloaded.  ResetAll does as its name implies  - unloads all items - which is far too heavy handed for our desired behavior.

Setting an item to null (via RemoveAt(index), Insert(index, null) produces undesired behavior - the item is not refetched when its row is redisplayed, RadGridview displays an "=" in the row, and the item cannot be removed from the VirtualQueryableCollectionView (RemoveAt fails silently). 

QUESTION:  Is there a mechanism by which ranges of items can be reset in (unloaded from) a VirtualQueryableCollectionView?

I've accomplished this using reflection to remove items from the the private "loadedIndexes" collection but obviously would NOTdo that in production code.


Thanks,
tim
MarkInTexas
Top achievements
Rank 1
 answered on 19 Nov 2014
3 answers
261 views
How to Extend Dynamically Nested Properties in Rad PropertyGrid  using search box 
Ivan Ivanov
Telerik team
 answered on 19 Nov 2014
1 answer
129 views
Hi,

When there is an exception thrown during cell validation in RadGridView edit mode, the keyboard is disabled.

Added the sample code below. Please let me know if this issue can be fixed.

// App.xaml
 
<Application x:Class="SampleAppWithRadGridView.App"
    StartupUri="MainWindow.xaml"
    DispatcherUnhandledException="Application_DispatcherUnhandledException" />
 
 
// App.xaml.cs
 
 
        private void Application_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            e.Handled = true;
            MessageBox.Show(e.Exception.Message);
        }
 
// MainWindow.xaml
 
<telerik:RadGridView Name="gridView" IsReadOnly="False" EditTriggers="F2" Width="200"></telerik:RadGridView>
 
// MainWindow.xaml.cs
 
public partial class MainWindow : Window
    {
        IList<Student> studentList = new List<Student>();
         
        public MainWindow()
        {
            InitializeComponent();
            InitializeStudentList();
            LoadGrid();
        }
 
        void InitializeStudentList()
        {
            studentList.Add(new Student { FirstName = "Robert", LastName = "Williams" });
            studentList.Add(new Student { FirstName = "Eric", LastName = "James" });
            studentList.Add(new Student { FirstName = "Randy", LastName = "Spencer" });
            gridView.ItemsSource = studentList;
        }
 
        void LoadGrid()
        {
            gridView.CellValidating += HandleCellValidating;
        }
 
        void HandleCellValidating(object sender, GridViewCellValidatingEventArgs e)
        {
            if (studentList.Any(s => s.FirstName == e.NewValue.ToString()))
            {
                e.Handled = true;
                throw new Exception();
            }
        }
    }
Dimitrina
Telerik team
 answered on 19 Nov 2014
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?