or
private
ObservableCollection<ObservableCollection<LogField>> _RowData;
public
ObservableCollection<ObservableCollection<LogField>> RowData
{
get
{
return
_RowData; }
set
{
if
(value != _RowData)
{
_RowData = value;
onPropertyChanged(
this
,
"RowData"
);
}
}
}
public
class
LogField : INotifyPropertyChanged
{
private
byte
_HighlighFlag;
public
byte
HighlightFlag
{
get
{
return
_HighlighFlag; }
set
{
if
(value != _HighlighFlag)
{
_HighlighFlag = value;
onPropertyChanged(
this
,
"HighlightFlag"
);
}
}
}
private
string
_Value;
public
string
Value
{
get
{
return
_Value; }
set
{
if
(value != _Value)
{
_Value = value;
onPropertyChanged(
this
,
"Value"
);
}
}
}
private
string
_DisplayUnits;
public
string
DisplayUnits
{
get
{
return
_DisplayUnits; }
set
{
if
(value != _DisplayUnits)
{
_DisplayUnits = value;
onPropertyChanged(
this
,
"DisplayUnits"
);
}
}
}
private
string
_BaseUnits;
public
string
BaseUnits
{
get
{
return
_BaseUnits; }
set
{
if
(value != _BaseUnits)
{
_BaseUnits = value;
onPropertyChanged(
this
,
"BaseUnits"
);
}
}
}
private
byte
_FieldType;
public
byte
FieldType
{
get
{
return
_FieldType; }
set
{
if
(value != _FieldType)
{
_FieldType = value;
onPropertyChanged(
this
,
"FieldType"
);
}
}
}
private
string
_FieldFormat;
public
string
FieldFormat
{
get
{
return
_FieldFormat; }
set
{
if
(value != _FieldFormat)
{
_FieldFormat = value;
onPropertyChanged(
this
,
"FieldFormat"
);
}
}
}
private
int
_SelectOffset;
public
int
SelectOffset
{
get
{
return
_SelectOffset; }
set
{
if
(value != _SelectOffset)
{
_SelectOffset = value;
onPropertyChanged(
this
,
"SelectOffset"
);
}
}
}
private
int
_UnitNumber;
public
int
UnitNumber
{
get
{
return
_UnitNumber; }
set
{
if
(value != _UnitNumber)
{
_UnitNumber = value;
onPropertyChanged(
this
,
"UnitNumber"
);
}
}
}
public
event
PropertyChangedEventHandler PropertyChanged;
private
void
onPropertyChanged(
object
sender,
string
propertyName)
{
if
(
this
.PropertyChanged !=
null
)
{
PropertyChanged(sender,
new
PropertyChangedEventArgs(propertyName));
}
}
}
// Initialize the radGridView with the propper settings for a log screen.
int
columnIndex = 0;
thisMMGridView.Height = 280;
LogScreen logScreen = (LogScreen)thisMMGridView.CurrentScreen;
thisMMGridView.radGridView.AutoGenerateColumns =
false
;
thisMMGridView.radGridView.Columns.Clear();
// Build the columns based on the headerStrings
foreach
(
string
headerString
in
logScreen.ColumnHeaderStrings)
{
GridViewDataColumn column =
new
GridViewDataColumn();
// Create the column header
TextBlock headerText =
new
TextBlock();
headerText.Text = headerString;
headerText.TextWrapping = TextWrapping.Wrap;
headerText.TextAlignment = TextAlignment.Left;
headerText.Padding =
new
Thickness(1, 0, 2, 0);
column.HeaderCellStyle = thisMMGridView.TryFindResource(
"AlarmGridViewHeaderCellStyle"
)
as
Style;
column.Header = headerText;
column.UniqueName = headerString;
thisMMGridView.radGridView.Columns.Add(column);
// Bind the column to it's data
column.DataMemberBinding =
new
Binding(
"["
+ columnIndex.ToString() +
"].Value"
);
// Bump the column index that is used for the columnBind
columnIndex++;
}
// Freeze the time & date columns so they are always visible
if
(thisMMGridView.radGridView.Columns[1].UniqueName ==
"DATE"
)
{
thisMMGridView.radGridView.FrozenColumnCount = 2;
}
else
{
thisMMGridView.radGridView.FrozenColumnCount = 1;
}
// Set the ItemsSource property of the grid to the data collection.
thisMMGridView.radGridView.ItemsSource = thisMMGridView.Unit.LogData.RowData;
view.ViewModel.DataItem =
new
Telerik.Windows.Data.QueryableDataServiceCollectionView<User>(db, db.Users){ AutoLoad =
true
,PageSize=20};
<
telerik:RadGridView
ItemsSource
=
"{Binding PagedSource, ElementName=DataPager1}"
>
<
telerik:RadDataPager
Name
=
"DataPager1"
Source
=
"{Binding DataItem}"
PageSize
=
"20"
DisplayMode
=
"Numeric"
>
<
telerik:RadGridView
AlternationCount
=
"1"
AutoExpandGroups
=
"False"
AutoGenerateColumns
=
"False"
CanUserDeleteRows
=
"False"
CanUserFreezeColumns
=
"False"
CanUserInsertRows
=
"False"
CanUserResizeColumns
=
"True"
CanUserSortColumns
=
"True"
DataLoadMode
=
"Synchronous"
EnableColumnVirtualization
=
"True"
EnableRowVirtualization
=
"True"
FontSize
=
"16"
FontWeight
=
"Bold"
Grid.Column
=
"0"
Grid.Row
=
"0"
IsReadOnly
=
"True"
Name
=
"HotListGrid"
ScrollViewer.CanContentScroll
=
"True"
ScrollViewer.HorizontalScrollBarVisibility
=
"Auto"
ScrollViewer.VerticalScrollBarVisibility
=
"Auto"
SelectionChanged
=
"HotListGrid_SelectionChanged"
SelectionUnit
=
"FullRow"
ShowColumnFooters
=
"True"
ShowGroupPanel
=
"False"
ToolTip
=
"Hot Lists"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Name , Mode=OneWay}"
Header
=
"Hot List"
Width
=
"323"
>
<
telerik:GridViewDataColumn.AggregateFunctions
>
<
telerik:CountFunction
Caption
=
"Count: "
ResultFormatString
=
"{}{0:n0}"
/>
</
telerik:GridViewDataColumn.AggregateFunctions
>
</
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ListType , Mode=OneWay}"
Header
=
"List Type"
Width
=
"Auto"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding LastUpdate, Mode=OneWay, Converter={StaticResource DateConverter}}"
Header
=
"Last Update"
Width
=
"200"
/>
<
telerik:GridViewImageColumn
DataMemberBinding
=
"{Binding Status , Mode=OneWay, Converter={StaticResource DeviceStatuses}}"
Header
=
"Status"
ImageStretch
=
"None"
Width
=
"95"
/>
<
telerik:GridViewDataColumn
Header
=
"Entries"
TextAlignment
=
"Right"
Width
=
"135"
>
<
telerik:GridViewDataColumn.DataMemberBinding
>
<
Binding
Path
=
"EntryCount"
Mode
=
"OneWay"
Converter
=
"{StaticResource LongConverter}"
ConverterParameter
=
"#,##0"
/>
</
telerik:GridViewDataColumn.DataMemberBinding
>
<
telerik:GridViewDataColumn.AggregateFunctions
>
<
telerik:SumFunction
ResultFormatString
=
"{}{0:n0}"
/>
</
telerik:GridViewDataColumn.AggregateFunctions
>
</
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
<
Style
TargetType
=
"{x:Type telerik:GridViewGroupFooterRow}"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"{x:Type telerik:GridViewGroupFooterRow}"
>
<
Border
x:Name
=
"PART_GroupFooterRowBorder"
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Background
=
"{TemplateBinding Background}"
HorizontalAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
Padding
=
"{TemplateBinding Padding}"
VerticalAlignment
=
"{TemplateBinding VerticalContentAlignment}"
>
<
telerik:SelectiveScrollingGrid
>
<
telerik:SelectiveScrollingGrid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"*"
/>
</
telerik:SelectiveScrollingGrid.ColumnDefinitions
>
<
Border
x:Name
=
"PART_IndicatorPresenter"
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"0,0,1,0"
Grid.Column
=
"0"
telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation
=
"Vertical"
Visibility
=
"{TemplateBinding RowIndicatorVisibility}"
VerticalAlignment
=
"Stretch"
Width
=
"25"
>
<
Border
BorderBrush
=
"White"
BorderThickness
=
"1"
Background
=
"#FFE4E4E4"
/>
</
Border
>
<
Border
x:Name
=
"PART_HierarchyIndent"
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"0,0,1,0"
Grid.Column
=
"2"
telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation
=
"Vertical"
Width
=
"25"
>
<
Border.Visibility
>
<
Binding
Path
=
"HasHierarchy"
RelativeSource
=
"{RelativeSource TemplatedParent}"
>
<
Binding.Converter
>
<
telerik:BooleanToVisibilityConverter
/>
</
Binding.Converter
>
</
Binding
>
</
Border.Visibility
>
</
Border
>
<
telerik:DataCellsPresenter
x:Name
=
"PART_DataCellsPresenter"
Grid.Column
=
"3"
IsTabStop
=
"False"
/>
<
telerik:IndentPresenter
x:Name
=
"PART_IndentPresenter"
Grid.Column
=
"1"
IsTabStop
=
"False"
IndentLevel
=
"{TemplateBinding IndentLevel}"
telerik:SelectiveScrollingGrid.SelectiveScrollingOrientation
=
"Vertical"
>
<
telerik:IndentPresenter.ItemTemplate
>
<
DataTemplate
>
<
telerik:GridViewGroupFooterIndentCell
IsTabStop
=
"False"
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_BlackTheme
/>
</
telerik:StyleManager.Theme
>
</
telerik:GridViewGroupFooterIndentCell
>
</
DataTemplate
>
</
telerik:IndentPresenter.ItemTemplate
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_BlackTheme
/>
</
telerik:StyleManager.Theme
>
</
telerik:IndentPresenter
>
</
telerik:SelectiveScrollingGrid
>
</
Border
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
<
Setter
Property
=
"Background"
Value
=
"{DynamicResource DataHeaderBackground}"
/>
<
Setter
Property
=
"BorderBrush"
Value
=
"{DynamicResource DataBorder}"
/>
<
Setter
Property
=
"MinHeight"
Value
=
"25"
/>
<
Setter
Property
=
"BorderThickness"
Value
=
"0,0,0,1"
/>
<
Setter
Property
=
"VerticalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"HorizontalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"SnapsToDevicePixels"
Value
=
"True"
/>
<
Setter
Property
=
"Foreground"
Value
=
"{DynamicResource DataHeaderForeground}"
/>
</
Style
>
<
Window
x:Class
=
"MenuSample.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
>
<
Grid
>
<
telerik:RadMenu
VerticalAlignment
=
"Top"
x:Name
=
"mainMenu"
>
<
telerik:RadMenuItem
Header
=
"File"
>
<
telerik:RadMenuItem
Header
=
"Menu1"
/>
<
telerik:RadMenuItem
Header
=
"Menu2"
/>
<
telerik:RadMenuItem
Header
=
"Menu3"
/>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Header
=
"View"
>
<
telerik:RadMenuItem
Header
=
"Menu1"
/>
<
telerik:RadMenuItem
Header
=
"Menu2"
/>
<
telerik:RadMenuItem
Header
=
"Menu3"
/>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Header
=
"Help"
>
<
telerik:RadMenuItem
Header
=
"Menu1"
/>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Header
=
"Help2"
>
<
telerik:RadMenuItem
Header
=
"Menu1"
/>
<
telerik:RadMenuItem
Header
=
"Menu2"
/>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Header
=
"Help3"
>
<
telerik:RadMenuItem
Header
=
"Menu1"
/>
<
telerik:RadMenuItem
Header
=
"Menu2"
/>
<
telerik:RadMenuItem
Header
=
"Menu3"
/>
</
telerik:RadMenuItem
>
</
telerik:RadMenu
>
</
Grid
>
</
Window
>