Hi,
I am having a problem with usage of cancel operation of DragInitializeEventArgs e in DragInitializeHandler.
After canceling particular items drag functionality it switches to parent item and marks it as chosen for dragging.
private void HandleDragInitialize(object sender, DragInitializeEventArgs e)
{
if(some condition)
{e.cancel=true;}
}
the item that belongs to mentioned condition will not get dragged but his parent instead.
Any solution?
Hi,
i have the following LinearAxis defined in my RadCartesianChart:
<
telerik:RadCartesianChart.VerticalAxis
>
<
telerik:LinearAxis
LabelOffset
=
"1"
LineThickness
=
"0"
LabelFormat
=
"P0"
Maximum
=
"1"
Minimum
=
"0"
MajorStep
=
"0.1"
>
</
telerik:LinearAxis
>
</
telerik:RadCartesianChart.VerticalAxis
>
I want labels only at values 0.1 (10 %) and 0.9 (90 %). See pictures in attchment (yellow lines are CartesianGridLineAnnotation and the blue one is the ScatterLineSeries).
How can I do this?
Thanks
Thomas
How can I specify AutomationIDs for Panes, Diagrams, and Nodes created at run-time in a project with MVVM architecture? Is there any example available?
I am trying to bind a RadContextMenu to dynamic data. For now though I am simply creating three items in the initialization method.
When I run the code WITHOUT having set the ItemContainerStyle in the RadContextMenu, I get a ContextMenu, however the text being displayed is the class name of the item being bound (see attached file for example)
When I insert the ItemContainerStyle in the XAML, nothing is displayed. However, in the "Opened" event of the RadContextMenu, I do see that the menu is "trying" to open yet nothing is ever displayed.
Without ItemContainerStyle, I get a pop-up with the class name of the items.
With ItemContainerStyle, I get nothing.
Here is the code wireup:
XAML in the UserControl where the RadContextMenu is defined:
<
telerik:RadContextMenu.ContextMenu
>
<
telerik:RadContextMenu
x:Name
=
"WorkListContextMenu"
ItemsSource
=
"{Binding WorkListContextMenuItems}"
Opened
=
"WorkListContextMenu_Opened"
>
<
telerik:RadContextMenu.ItemContainerStyle
>
<
Style
TargetType
=
"telerik:RadMenuItem"
>
<
Setter
Property
=
"Header"
Value
=
"{Binding Header}"
/>
<
Setter
Property
=
"ItemsSource"
Value
=
"{Binding SubItems}"
/>
<
Setter
Property
=
"IsEnabled"
Value
=
"{Binding IsEnabled}"
/>
<
Setter
Property
=
"IsChecked"
Value
=
"{Binding IsChecked}"
/>
</
Style
>
</
telerik:RadContextMenu.ItemContainerStyle
>
</
telerik:RadContextMenu
>
</
telerik:RadContextMenu.ContextMenu
>
When I comment out the "telerik:RadContextMenu.ItemContainerStyle" section, the pop-up appears, but with the classname of the ItemsSource Binding objects.
Not sure what I can do, I've researched for two days now and cannot find the solution. Can someone please offer a suggestion as to what I'm doing wrong?
This is related to the grid's virtualization. The following code demonstrates the problem
View Models and models:
public
class
MainViewModel : ViewModelBase
{
private
ObservableCollection<Person> _persons =
new
ObservableCollection<Person>();
private
DelegateCommand<Person> _deletePersonCommand;
public
MainViewModel()
{
for
(
int
i = 0; i < 30; i++)
{
_persons.Add(
new
Person()
{
FirstName =
"Hello"
+ i,
LastName =
"World"
+ i,
});
}
}
public
ObservableCollection<Person> Persons
{
get
{
return
_persons;
}
}
public
DelegateCommand<Person> DeletePersonCommand
{
get
{
if
(_deletePersonCommand ==
null
)
{
_deletePersonCommand =
new
DelegateCommand<Person>(deletePerson);
}
return
_deletePersonCommand;
}
}
private
void
deletePerson(Person person)
{
_persons.Remove(person);
}
}
public
class
Person
{
public
string
FirstName {
get
;
set
; }
public
string
LastName {
get
;
set
; }
}
I have excluded the definition of the Delegate Command. It doesn't matter to this problem, since it will also happen with CallMethodAction, for example...
Here is the XAML:
<
Window
x:Class
=
"GridViewRowRelativeSourceBug.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"MainWindow"
Height
=
"250"
Width
=
"525"
>
<
Grid
>
<
telerik:RadGridView
Name
=
"radGridView1"
ShowGroupPanel
=
"False"
ShowGroupFooters
=
"False"
AutoGenerateColumns
=
"False"
ItemsSource
=
"{Binding Persons}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
IsReadOnly
=
"True"
Header
=
"First Name"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
TextBlock
Text
=
"{Binding FirstName}"
/>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn
IsReadOnly
=
"True"
Header
=
"Last Name"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
TextBlock
Text
=
"{Binding LastName}"
/>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn
IsReadOnly
=
"True"
Header
=
"Delete"
Width
=
"80"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
Button
Content
=
"Delete Me"
Command
=
"{Binding RelativeSource={RelativeSource AncestorType=telerik:RadGridView}, Path=DataContext.DeletePersonCommand}"
CommandParameter
=
"{Binding}"
/>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
Grid
>
</
Window
>
Please note that instead of having a command for each item, the mainViewModel that contains the items, gets the command and the item to remove as a command parameter.
If you run this example, then there are 2 ways to delete the rows, one will work and the other will fail after deleting about 10 rows
Way #1, deleting from the start
first delete the items from the start, meaning, click on the "Delete Me" button of the first row, now after the first row was deleted, then click the "Delete Me" of the new first row.
You should be able to delete all the rows in that grid.
Way #2, deleting from the end:
Scroll to the end of the grid, and click on the "Delete Me" of the last row. Once it was removed, repeat this procedure for about 10 more times (the number of times is related to the number if rows that fits into the view, and I assume that container recycling is one of the causes to this problem).
You should see that at some point, the "Delete Me" will not do anything, and that the deletePerson function is never called.
In the Output window of Visual Studio you will see:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='Telerik.Windows.Controls.RadGridView', AncestorLevel='1''. BindingExpression:Path=DataContext.DeletePersonCommand; DataItem=null; target element is 'Button' (Name=''); target property is 'Command' (type 'ICommand')
I must say that this bug is pretty old, and its weird that no one has reported it yet.
I made the implementation of a RadRibbonWindow as it indicates the article: https://goo.gl/sj1Ank but when making the changes I have errors about the main class project. What could be happening?
We're currently using RadHorizontalDataAxis for a media-scrubber-like application like so.
1.
<
telerik:RadHorizontalDataAxis
x:Name
=
"FrameAxis"
Grid.Row
=
"0"
Panel.ZIndex
=
"1"
2.
Stroke
=
"DarkRed"
Foreground
=
"Gray"
SizeChanged
=
"FrameAxis_SizeChanged"
3.
Minimum
=
"{Binding Path=FirstValue, Source={x:Static local:MyEditorViewModel.Instance}, Mode=OneWay}"
4.
Maximum
=
"{Binding Path=Duration, Source={x:Static local:MyEditorViewModel.Instance}, Mode=OneWay}"
/>
The result looks like the attached image. The mess at the end is because there is a tick mark at 12 and then at 12.00000048877 (the Duration, and a correct value).
1) I'd like the axis to be smarter about ticks marks near the end. In this sample, either only showing 12 or only showing 12.00000048877 would be desirable, but not both. It looks like ChartView.LinearAxis has a SmartLabelsMode property that can do what we want. However, is LinearAxis usable in a loose fashion, that is, without a ChartView? Basic attempts to use it by itself weren't successful.
1) For application-specific purposes, I'd like to have some different stops at the ends. I'd like to see "Start" at the beginning, then 0 followed by some number of other autogenerated ticks, followed by "End" at the end. So, in the example, I'd like to see axis labels of "Start, "0", "4", "8", "12", and "End". This seems like a mixture of categorical labels and smart/data-driven labels. Any options for this?
1) Is there a better axis we should be using?
We don't particularly need a ChartView, but I ask this here since ChartView seems to be where all the axes fall. If there's a better forum in which to ask, please let me know.
Hello,
is it possible to have a predefined grouping that the user can not remove? And is it possible to have a fix sort order on that grouping - also not changeable by the user?
Regards,
Raul