<UserControl x:Class="WpfTest_Telerik.UserControl1" |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" |
Width="300" Height="300"> |
<UserControl.Resources> |
<Style x:Key="MajorTickStyle" TargetType="{x:Type telerik:TickProperties}"> |
<Setter Property="Background" Value="White" /> |
<Style.Triggers> |
<Trigger Property="IsEnabled" Value="False"> |
<Setter Property="Background" Value="Black" /> |
</Trigger> |
</Style.Triggers> |
</Style> |
<Style x:Key="LabelProperties" TargetType="{x:Type telerik:LabelProperties}"> |
<Setter Property="Foreground" Value="White" /> |
<Style.Triggers> |
<Trigger Property="IsEnabled" Value="False"> |
<Setter Property="Foreground" Value="Black" /> |
</Trigger> |
</Style.Triggers> |
</Style> |
</UserControl.Resources> |
<Grid> |
<telerik:RadGauge> |
<telerik:RadialGauge> |
<telerik:RadialScale> |
<telerik:RadialScale.MajorTick> |
<telerik:TickProperties IsEnabled="{Binding Path=IsActive}" Style="{StaticResource MajorTickStyle}"/> |
</telerik:RadialScale.MajorTick> |
<telerik:RadialScale.Label > |
<telerik:LabelProperties IsEnabled="{Binding Path=IsActive}" Style="{StaticResource LabelProperties}" /> |
</telerik:RadialScale.Label> |
</telerik:RadialScale> |
</telerik:RadialGauge> |
</telerik:RadGauge> |
</Grid> |
</UserControl> |
using System.Windows.Controls; |
namespace WpfTest_Telerik |
{ |
/// <summary> |
/// Interaction logic for UserControl1.xaml |
/// </summary> |
public partial class UserControl1 : UserControl |
{ |
public UserControl1() |
{ |
// will work |
//DataContext = new UserControl1ViewModel(); |
InitializeComponent(); |
// will not work |
DataContext = new UserControl1ViewModel(); |
} |
} |
} |
using System; |
using System.Windows; |
using System.Timers; |
using System.Windows.Threading; |
namespace WpfTest_Telerik |
{ |
public class UserControl1ViewModel : DependencyObject |
{ |
private readonly Dispatcher _currentDispatcher; |
public UserControl1ViewModel() |
{ |
_currentDispatcher = Dispatcher.CurrentDispatcher; |
var timer = new Timer(2000); |
timer.Elapsed += TimerElapsed; |
timer.Start(); |
} |
void TimerElapsed(object sender, ElapsedEventArgs e) |
{ |
Action x = () => IsActive = !IsActive; |
_currentDispatcher.BeginInvoke(x); |
} |
public bool IsActive |
{ |
get { return (bool)GetValue(IsActiveProperty); } |
set { SetValue(IsActiveProperty, value); } |
} |
// Using a DependencyProperty as the backing store for IsActive. This enables animation, styling, binding, etc... |
public static readonly DependencyProperty IsActiveProperty = |
DependencyProperty.Register("IsActive", typeof(bool), typeof(UserControl1ViewModel), new UIPropertyMetadata(false)); |
} |
} |
<telerik:RadGridView Name="RadGridView1" Width="200" AutoGenerateColumns="False" >
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataType="Image" IsSortable="False" IsFilterable="False" UniqueName="ImageFile" HeaderText="Picture" Width="60" />
<telerik:GridViewDataColumn UniqueName="ShortName" HeaderText="Name" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
Then at runtime i bind to the grid with the following code
Dim Teammembers As IntyLibrary.TeammemberCollection = IntyLibrary.TeammemberCollection.GetTeamMembers
RadGridView1.ItemsSource = TeamMembers
I get all the data fine in the grid but i get the path name of the images, i need the grid to display the image.
<telerik:RadGridView |
Name="RadGridPhoneList" HorizontalAlignment="Left" |
IsReadOnly="True" |
telerik:StyleManager.Theme="Simple" |
RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False" |
ColumnsWidthMode="Fill" |
CanUserFreezeColumns="False" |
ItemsSource="{Binding Path=PersonPhoneViewModels}" |
> |
<telerik:RadGridView.Columns> |
<telerik:GridViewDataColumn |
HeaderText="Phone Number" |
UniqueName ="PhoneNumber" |
> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<telerik:RadMaskedTextBox |
x:Name="TextBoxNumber" |
Mask="(###) ### - ####" |
Width="100" |
Value="{Binding Path=PhoneNumber, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" |
/> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
<telerik:GridViewDataColumn |
HeaderText="Extension" |
DataMemberPath="Extension" |
UniqueName ="Extension" |
/> |
<telerik:GridViewComboBoxColumn |
HeaderText="Phone Type" |
UniqueName ="PhoneType"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<ComboBox |
VerticalAlignment="Center" |
ItemsSource="{Binding Path=PhoneTypeOptions, Mode=OneTime}" |
IsSynchronizedWithCurrentItem="true" |
SelectedItem="{Binding Path=PhoneType}" |
/> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewComboBoxColumn> |
<telerik:GridViewComboBoxColumn |
HeaderText="Phone Provider" |
UniqueName ="PhoneProviderType"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<ComboBox |
VerticalAlignment="Center" |
ItemsSource="{Binding Path=PhoneProviderOptions, Mode=OneTime}" |
IsSynchronizedWithCurrentItem="true" |
SelectedItem="{Binding Path=PhoneProviderType}" |
/> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewComboBoxColumn> |
<!-- allows gouping, but not edit --> |
<telerik:GridViewDataColumn |
HeaderText="Is Default" |
UniqueName="IsDefault"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<CheckBox |
VerticalAlignment="Center" |
IsChecked="{Binding Path=IsDefault}" |
/> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
<!-- does not allows gouping, but can edit --> |
<telerik:GridViewDataColumn |
HeaderText="Is Default"> |
<telerik:GridViewColumn.CellTemplate> |
<DataTemplate> |
<CheckBox |
VerticalAlignment="Center" |
IsChecked="{Binding Path=IsDefault}" |
/> |
</DataTemplate> |
</telerik:GridViewColumn.CellTemplate> |
</telerik:GridViewDataColumn> |
<telerik:GridViewDataColumn |
HeaderText="Note" |
IsCustomSortingEnabled="True" |
IsFilterable="True" |
DataMemberPath="Note"> |
</telerik:GridViewDataColumn> |
</telerik:RadGridView.Columns> |
</telerik:RadGridView> |
I want to be able to change the hierarchy in a treeview based on user request. For example, I have a List<vehicles> like this (below) that I want to show in a TreeView.
Ford Red 2-door 2002
Ford Blue 2-door 2003
Jeep Silver 4-Door 2005
Toyota Gray 4-door 2008
Jeep White Hatch 2004
Toyota White 2-door 2001
No big deal until I want to change the grouping, that is, allow make or color or #-doors or year to be the first level in the hierarchy. I don’t see any way to parameterize the binding source in the HierarchicalDataTemplate or use code-behind. What I’d like to end up with is a treeview like this:
+ Ford
Red
Blue
+ Jeep
Silver
White
+Toyota
Gray
White
Or, by a user selection, regroup the treeview to this:
+Red
Ford
+Blue
Ford
+ Silver
Jeep
+Gray
Toyota
+White
Jeep
Toyota
All the data is in a Collection (objects of class vehicle in my example) and ideally, I’d like to be able to group and sort that list using LINQ (perhaps). Any change of implementing this with TreeView?
Telerik.Windows.Data.
Record objRec = rdcTasks.SelectedRecord;
RadCarouselPanel panel = this.rdcTasks.FindCarouselPanel();
this.rdcTasks.ItemsSource = this.CreateItemSource();
panel.BringDataItemIntoView(objRec);
In debug mode when I check the value of objRec, it shows the correct data record. However, it does not bring it to the centre.
Also, I need to set a different colour for the data record at the centre of the carousel. How can I achieve this?
Thanks in advance.