Using Telerik WPF for .NET 4
OS: Windows Server 2008
Assuming a RadGridView named "grid" is defined in XAML the following code works in
WPF Version 2011.2.712.40 but not in later versions such as 2011.2.920.40 or 2011.2.1010.40.
Calling grid.Rebind() however works for all versions.
Expected result:
Calling mi1_Click should update the value in the first cell of the grid.public
partial
class
MainWindow : Window
{
private
ObservableCollection<MyDynamicObject> myObjects;
private
int
Counter;
public
MainWindow()
{
InitializeComponent();
myObjects =
new
ObservableCollection<MyDynamicObject>();
for
(
int
i = 0; i < 5; i++)
{
dynamic myObject =
new
MyDynamicObject();
myObjects.Add(myObject);
}
GridViewDataColumn col =
new
GridViewDataColumn();
col.Header =
"Prop1"
;
col.DataMemberBinding =
new
Binding(
"Prop1"
);
col.DataType =
typeof
(
string
);
grid.Columns.Add(col);
grid.ItemsSource = myObjects;
}
private
void
mi1_Click(
object
sender, RoutedEventArgs e)
{
MyDynamicObject myObj = myObjects[0];
Counter++;
myObj.PropertyDict[
"Prop1"
] = Counter.ToString();
myObj.NotifyPropertyChanged(
"Prop1"
);
}
}
public
class
MyDynamicObject : DynamicObject, INotifyPropertyChanged
{
public
readonly
Dictionary<
string
,
object
> PropertyDict;
public
event
PropertyChangedEventHandler PropertyChanged;
public
void
NotifyPropertyChanged(
string
propertyName)
{
if
(PropertyChanged !=
null
)
PropertyChanged(
this
,
new
PropertyChangedEventArgs(propertyName));
}
public
MyDynamicObject()
{
PropertyDict =
new
Dictionary<
string
,
object
>();
}
public
override
bool
TryGetMember(GetMemberBinder binder,
out
object
result)
{
string
propertyName = binder.Name;
object
obj1;
result =
null
;
if
(PropertyDict.TryGetValue(propertyName,
out
obj1))
result = obj1;
return
true
;
}
public
override
bool
TrySetMember(SetMemberBinder binder,
object
value)
{
string
propertyName = binder.Name;
PropertyDict[propertyName] = value;
return
true
;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Telerik.Windows.Controls;
namespace RadControlsWpfApp1
{
public class RadDockingTheme:Theme
{
}
}
and added xmlns:local="clr-namespace:RadControlsWpfApp1;assembly=RadControlsWpfApp1" before the style definition.
Can somebody tell me waht is wrong or post the source code of a working example of a restyled radpane toolbox?
Thanks in Advance!
Pieter
Hello Telerik Team,
I have a requirement where the rad combobox has a list of names. After selecting a value from the dropdown panel, the selected name should be displayed as a hyperlink.
I have managed to get the hyperlink by using a DataTemplate in the SelectionBoxTemplate of the radcombobox as shown below.
<
UserControl.Resources
>
<
DataTemplate
x:Key
=
"SelectionBoxTemplateKey"
>
<
TextBlock
>
<
Hyperlink
Tag
=
"{Binding Path=FocalUserId}"
Name
=
"hyplnkFocalFullName"
Click
=
"hyplnkFocalFullName_Click"
>
<
TextBlock
Text
=
"{Binding FocalFullName}"
></
TextBlock
>
</
Hyperlink
>
</
TextBlock
>
</
DataTemplate
>
</
UserControl.Resources
>
<
Telerik:RadComboBox
Name
=
"radCmbFocal"
IsEditable
=
"False"
Grid.Row
=
"3"
Grid.Column
=
"5"
Width
=
"130"
SelectedValue
=
"{Binding Path=FocalId,Mode=TwoWay}"
SelectedValuePath
=
"FocalId"
DisplayMemberPath
=
"FocalFullName"
SelectionBoxTemplate
=
"{StaticResource SelectionBoxTemplateKey}"
HorizontalAlignment
=
"Left"
Margin
=
"7 0 0 0"
VerticalAlignment
=
"Center"
SourceUpdated
=
"radCmbFocal_SourceUpdated"
>
</
Telerik:RadComboBox
>
But the click event of the hyperlink doesn't get's fired, nor does the cursor pointer changes to hand cursor on hovering over the selected value as it does for a normal hyperlink.
Is there a solution to achieve this requirement.
Thanks.
Regards,
Mausami.
<
telerik:RadGridView.GroupHeaderTemplate
>
<
DataTemplate
>
<
StackPanel
Orientation
=
"Horizontal"
Margin
=
"0,0"
>
<
TextBlock
Text
=
"{Binding Group.Key}"
Margin
=
"0,0,0,2"
Width
=
"200"
/>
<
telerik:AggregateResultsList
ItemsSource
=
"{Binding}"
VerticalAlignment
=
"Center"
>
<
ItemsControl.ItemTemplate
>
<
DataTemplate
>
<
StackPanel
Orientation
=
"Vertical"
VerticalAlignment
=
"Center"
>
<
TextBlock
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Center"
Text
=
"{Binding Caption}"
Width
=
"80"
/>
<
TextBlock
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Center"
Text
=
"{Binding FormattedValue}"
Width
=
"80"
/>
</
StackPanel
>
</
DataTemplate
>
</
ItemsControl.ItemTemplate
>
<
ItemsControl.ItemsPanel
>
<
ItemsPanelTemplate
>
<
StackPanel
Orientation
=
"Horizontal"
/>
</
ItemsPanelTemplate
>
</
ItemsControl.ItemsPanel
>
</
telerik:AggregateResultsList
>
</
StackPanel
>
</
DataTemplate
>
</
telerik:RadGridView.GroupHeaderTemplate
>
<
telerik:RadGridView.GroupDescriptors
>
<
telerik:GroupDescriptor
x:Name
=
"TransactionGroup"
Member
=
"TransactionGroup"
SortDirection
=
"Ascending"
>
<
telerik:GroupDescriptor.AggregateFunctions
>
<
telerik:MinFunction
Caption
=
"Cash: "
SourceField
=
"CashTotal"
ResultFormatString
=
"{}{0:0.00}"
/>
<
telerik:MinFunction
Caption
=
"Inv Beg: "
SourceField
=
"BegInvTotal"
ResultFormatString
=
"{}{0:0.00}"
/>
<
telerik:MinFunction
Caption
=
"End: "
SourceField
=
"EndInvTotal"
ResultFormatString
=
"{}{0:0.00}"
/>
<
telerik:MinFunction
Caption
=
"Acc Beg: "
SourceField
=
"BegAccruedTotal"
ResultFormatString
=
"{}{0:0.00}"
/>
<
telerik:MinFunction
Caption
=
"End: "
SourceField
=
"EndAccruedTotal"
ResultFormatString
=
"{}{0:0.00}"
/>
<
telerik:MinFunction
Caption
=
"Accrual: "
SourceField
=
"AccrualAmount"
ResultFormatString
=
"{}{0:0.00}"
/>
<
telerik:SumFunction
Caption
=
"Ent Amt: "
SourceField
=
"Amount"
ResultFormatString
=
"{}{0:c2}"
/>
<
local:EnterpriseDifferenceFunction
Caption
=
"Diff: "
ResultFormatString
=
"{}{0:0.00}"
/>
</
telerik:GroupDescriptor.AggregateFunctions
>
</
telerik:GroupDescriptor
>
</
telerik:RadGridView.GroupDescriptors
>