or
public
enum
ObjectState
{
Unchanged = 0,
New = 1,
Updated = 2,
Deleted = 3,
}
public
class
ObjectStateStyleSelector : StyleSelector
{
public
Style UnchangedStyle {
get
;
set
; }
public
Style ChangedStyle {
get
;
set
; }
public
Style AddedStyle {
get
;
set
; }
public
Style DeletedStyle {
get
;
set
; }
public
override
System.Windows.Style SelectStyle(
object
item, System.Windows.DependencyObject container)
{
if
(item !=
null
)
{
Model model = item
as
Model;
if
(model !=
null
)
{
switch
(model.ObjectState)
{
case
ObjectState.New:
return
this
.AddedStyle;
case
ObjectState.Updated:
return
this
.ChangedStyle;
case
ObjectState.Unchanged:
return
this
.UnchangedStyle;
case
ObjectState.Deleted:
return
this
.DeletedStyle;
}
}
}
return
null
;
}
}
public
class
Model : INotifyPropertyChanged
{
private
ObjectState m_objectState;
private
int
m_id;
private
string
m_description;
public
ObjectState ObjectState
{
get
{
return
m_objectState; }
set
{
if
(m_objectState == value)
return
;
m_objectState = value;
OnNotifyPropertyChanged(
"ObjectState"
);
}
}
public
int
ID
{
get
{
return
this
.m_id; }
set
{
if
(
this
.m_id == value)
return
;
this
.m_id = value;
UpdateState();
OnNotifyPropertyChanged(
"ID"
);
}
}
public
string
Description
{
get
{
return
this
.m_description; }
set
{
if
(
this
.m_description == value)
return
;
this
.m_description = value;
UpdateState();
OnNotifyPropertyChanged(
"Description"
);
}
}
public
Model()
{
this
.ObjectState = GridProblem.ObjectState.New;
}
#region INotifyPropertyChanged Members
public
event
PropertyChangedEventHandler PropertyChanged;
private
void
OnNotifyPropertyChanged(
string
prop)
{
if
(
this
.PropertyChanged !=
null
)
{
this
.PropertyChanged(
this
,
new
PropertyChangedEventArgs(prop));
}
}
private
void
UpdateState()
{
if
(m_objectState == GridProblem.ObjectState.Unchanged)
{
m_objectState = GridProblem.ObjectState.Updated;
}
}
#endregion
}
<
Window
x:Class
=
"GridProblem.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:main
=
"clr-namespace:GridProblem"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
>
<
Window.Resources
>
<
main:ObjectStateStyleSelector
x:Key
=
"GridColumnObjectStateStyleSelector"
>
<
main:ObjectStateStyleSelector.AddedStyle
>
<
Style
TargetType
=
"telerik:GridViewCell"
>
<
Setter
Property
=
"ContentTemplate"
>
<
Setter.Value
>
<
DataTemplate
>
<
TextBlock
Text
=
"+"
FontSize
=
"20"
FontWeight
=
"Bold"
Foreground
=
"Green"
Margin
=
"0"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
></
TextBlock
>
</
DataTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
main:ObjectStateStyleSelector.AddedStyle
>
<
main:ObjectStateStyleSelector.ChangedStyle
>
<
Style
TargetType
=
"telerik:GridViewCell"
>
<
Setter
Property
=
"ContentTemplate"
>
<
Setter.Value
>
<
DataTemplate
>
<
TextBlock
Text
=
"*"
FontSize
=
"20"
FontWeight
=
"Bold"
Foreground
=
"OrangeRed"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
></
TextBlock
>
</
DataTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
main:ObjectStateStyleSelector.ChangedStyle
>
<
main:ObjectStateStyleSelector.UnchangedStyle
>
<
Style
TargetType
=
"telerik:GridViewCell"
>
<
Setter
Property
=
"ContentTemplate"
>
<
Setter.Value
>
<
DataTemplate
>
</
DataTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
main:ObjectStateStyleSelector.UnchangedStyle
>
</
main:ObjectStateStyleSelector
>
</
Window.Resources
>
<
Grid
>
<
telerik:RadGridView
x:Name
=
"mainGrid"
ItemsSource
=
"{Binding Path=Items}"
CanUserInsertRows
=
"True"
ShowInsertRow
=
"True"
AutoGenerateColumns
=
"False"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
CellStyleSelector
=
"{StaticResource GridColumnObjectStateStyleSelector}"
DataMemberBinding
=
"{Binding Path=ObjectState}"
/>
<
telerik:GridViewDataColumn
Header
=
"ID"
DataMemberBinding
=
"{Binding Path=ID}"
></
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn
Header
=
"Description"
DataMemberBinding
=
"{Binding Path=Description}"
></
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
Grid
>
</
Window
>
Hi everyone.
In our project, we have just upgraded the version of the controls from 2012Q3 to 2013Q2. With the new version, we see something strange in the time ruler in the ScheduleView, when we are doing TimeZone grouping. You can see this behavior in the attached captures.
2012 Q3:
http://i.imgur.com/u59u7V3.png
2013 Q2:
http://i.imgur.com/3Tb50Js.png
In 2013 Q2 image, I've marked this time ruler, seems that the time is added rather than substracted (I'm expecting to see the time ruler like 2012 Q3 capture, the time in Canary Islands must be -1 rather than +1).
Any help? Is this change intended, and if it is, can I go back to the 2012 Q3 behavior with the new version?
Thank you.