or
public
class
TestTreeView : RadTreeListView
{
}
<
controls:TestTreeView
ItemsSource
=
"{Binding Items}"
/> -> empty screen
...
<
t:RadTreeListView
ItemsSource
=
"{Binding Items}"
/> -> fine
public
partial
class
App : Application
{
protected
override
void
OnStartup(StartupEventArgs e)
{
this
.ShutdownMode = System.Windows.ShutdownMode.OnLastWindowClose;
// Init the application's main window...
var mainWindow =
new
WindowWithTelerikDockingFromExample();
mainWindow.Title =
"Main Window"
;
this
.MainWindow = mainWindow;
mainWindow.Show();
// init another instance of the window with the telerik docking, on a seperate UI thread...
var thread =
new
Thread(() =>
{
SynchronizationContext.SetSynchronizationContext(
new
DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher));
var window2 =
new
WindowWithTelerikDockingFromExample();
window2.Title =
"Window on seperate UI Thread..."
;
window2.Show();
System.Windows.Threading.Dispatcher.Run();
window2.Closed += (s2, e2) =>
{
window2.Dispatcher.InvokeShutdown();
};
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
base
.OnStartup(e);
}
}
<
Window
x:Class
=
"TelerikDockingThreadIssueExample.WindowWithTelerikDockingFromExample"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"Window with xaml copy and pasted from Telerik example"
Height
=
"300"
Width
=
"300"
>
<
Grid
>
<
telerik:RadDocking
BorderThickness
=
"0"
Padding
=
"0"
>
<
telerik:RadDocking.DocumentHost
>
<
telerik:RadSplitContainer
>
<
telerik:RadPaneGroup
>
<
telerik:RadDocumentPane
Header
=
"Document 1"
Title
=
"Document 1"
/>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
</
telerik:RadDocking.DocumentHost
>
<
telerik:RadSplitContainer
InitialPosition
=
"DockedLeft"
>
<
telerik:RadPaneGroup
>
<
telerik:RadPane
Header
=
"Pane Left 1"
IsPinned
=
"False"
>
<
TextBlock
Text
=
"Pane Left 1"
/>
</
telerik:RadPane
>
<
telerik:RadPane
Header
=
"Pane Left 2"
IsPinned
=
"False"
>
<
TextBlock
Text
=
"Pane Left 2"
/>
</
telerik:RadPane
>
<
telerik:RadPane
Header
=
"Pane Left 3"
IsPinned
=
"False"
>
<
TextBlock
Text
=
"Pane Left 3"
/>
</
telerik:RadPane
>
<
telerik:RadPane
Header
=
"Pane Left 4"
IsPinned
=
"False"
>
<
TextBlock
Text
=
"Pane Left 4"
/>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
<
telerik:RadSplitContainer
InitialPosition
=
"DockedRight"
>
<
telerik:RadPaneGroup
>
<
telerik:RadPane
Header
=
"Pane Right 1"
IsPinned
=
"False"
>
<
TextBlock
Text
=
"Pane Right 1"
/>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
<
telerik:RadSplitContainer
InitialPosition
=
"DockedBottom"
>
<
telerik:RadPaneGroup
>
<
telerik:RadPane
Header
=
"Pane Bottom 1"
IsPinned
=
"False"
>
<
TextBlock
Text
=
"Pane Bottom 1"
/>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
</
telerik:RadDocking
>
</
Grid
>
</
Window
>
public class WorkItemTree
{
public ObservableCollection<
WorkItemNode
> workItems
{
get;
set;
}
}
public class WorkItemNode
{
public ObservableCollection<
WorkItemNode
> Children
{
get;
set;
}
public int Id
{
get;
set;
}
public string Title
{
get;
set;
}
public string State
{
get;
set;
}
public List<
MyState
> States
{
get;
set;
}
}
public class MyState
{
public string Name
{
get;
set;
}
}
this.radTreeListView.ItemsSource = TFSManager.workItems.workItems;
<
Window
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
x:Class
=
"TFSTreeView.MainWindow"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
>
<
Grid
>
<
telerik:RadTreeListView
x:Name
=
"radTreeListView"
AutoGenerateColumns
=
"False"
ScrollMode
=
"Deferred"
LoadingRowDetails
=
"radTreeListView_LoadingRowDetails"
RowDetailsVisibilityMode
=
"Visible"
Margin
=
"0,0,0,-23"
IsReadOnly
=
"True"
DataLoaded
=
"radTreeListView_DataLoaded"
>
<
telerik:RadTreeListView.ChildTableDefinitions
>
<
telerik:TreeListViewTableDefinition
ItemsSource
=
"{Binding Children}"
/>
</
telerik:RadTreeListView.ChildTableDefinitions
>
<
telerik:RadTreeListView.Columns
>
<
telerik:GridViewComboBoxColumn
Name
=
"State"
Header
=
"State"
DataMemberBinding
=
"{Binding State, Mode=TwoWay}"
ItemsSource
=
"{Binding States}"
DisplayMemberPath
=
"Name"
SelectedValueMemberPath
=
"Name"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Title}"
Header
=
"Title"
/>
</
telerik:RadTreeListView.Columns
>
</
telerik:RadTreeListView
>
</
Grid
>
</
Window
>
public void Create2DCharting(ObservableCollection<
CategoricalDataItem
> data, NewChartTheme chartTheme)
{
this.ShowCartesian3DChart = false;
BarSeries barSeries = new BarSeries();
if (chartTheme.ColorBrushes.Count > 0)
{
for (int i = 0; i <
data.Count
; i++ )
{
data[i]
.Color
=
chartTheme
.ColorBrushes[i];
}
}
if (chartTheme.ChartTp == ChartType.PieChart || chartTheme.ChartTp == ChartType.DoughnutChart)
{
this.ShowPieChart
=
true
;
this.ShowCartesian2DChart
=
false
;
this.PieChart
=
new
RadPieChart();
this.PieChart.Palette
=
new
ChartPalette();
foreach (CategoricalDataItem cdi in data)
PieChart.Palette.GlobalEntries.Add(new PaletteEntry(cdi.Color, cdi.Color));
if (chartTheme.ShowLegend)
{
this.ChartLegend
=
new
RadLegend();
this.ChartLegend.Items
= this.PieChart.LegendItems;
}
}
else
{
this.ShowPieChart
=
false
;
this.ShowCartesian2DChart
=
true
;
this.CartesianChart2D
=
new
RadCartesianChart();
if (chartTheme.BackgroundColor != null)
this.CartesianChart2D.Background
=
new
SolidColorBrush((Color)ColorConverter.ConvertFromString(chartTheme.BackgroundColor));
barSeries.HorizontalAxis
=
new
CategoricalAxis();
barSeries.VerticalAxis
=
new
LinearAxis();
if (chartTheme.ShowLegend)
{
this.ChartLegend
=
new
RadLegend();
barSeries.ItemsSource
=
data
;
barSeries.ValueBinding
=
new
PropertyNameDataPointBinding("YValue");
barSeries.CategoryBinding
=
new
PropertyNameDataPointBinding("XValue");
LegendItemCollection
lic
=
new
LegendItemCollection();
foreach (var d in data)
lic.Add(new LegendItem() { MarkerFill = (Brush)d.Color, MarkerStroke = (Brush)d.Color,
Title
=
d
.XValue });
this.ChartLegend.Items
=
lic
;
}
else
{
barSeries.ItemsSource
=
data
;
barSeries.ValueBinding
=
new
PropertyNameDataPointBinding("YValue");
barSeries.CategoryBinding
=
new
PropertyNameDataPointBinding("XValue");
}
}
switch(chartTheme.ChartTp)
{
case ChartType.BarChart :
if(chartTheme.ColorBrushes.Count > 0)
barSeries.PointTemplate = GetBarColorDataTemplate();
if (chartTheme.ShowGridLines)
this.CartesianChart2D.Grid = new CartesianChartGrid() { MajorLinesVisibility = GridLineVisibility.Y };
this.CartesianChart2D.Series.Add(barSeries);
break;
case ChartType.HorizontalBarChart :
barSeries.VerticalAxis = new CategoricalAxis();
barSeries.HorizontalAxis = new LinearAxis();
if(chartTheme.ColorBrushes.Count > 0)
barSeries.PointTemplate = GetBarColorDataTemplate();
this.CartesianChart2D.Series.Add(barSeries);
break;
case ChartType.LineGraph :
LineSeries lineSeries = new LineSeries();
lineSeries.HorizontalAxis = new CategoricalAxis();
lineSeries.VerticalAxis = new LinearAxis();
lineSeries.ItemsSource = data;
lineSeries.ValueBinding = new PropertyNameDataPointBinding("YValue");
lineSeries.CategoryBinding = new PropertyNameDataPointBinding("XValue");
lineSeries.PointTemplate = GetLineDataPointDataTemplate();
this.CartesianChart2D.Series.Add(lineSeries);
break;
case ChartType.PieChart :
PieSeries pieSeries = new PieSeries();
pieSeries.ItemsSource = data;
pieSeries.ValueBinding = new PropertyNameDataPointBinding("YValue");
PieChart.Series.Add(pieSeries);
break;
case ChartType.DoughnutChart :
DoughnutSeries doughnutSeries = new DoughnutSeries();
doughnutSeries.ItemsSource = data;
doughnutSeries.ValueBinding = new PropertyNameDataPointBinding("YValue");
PieChart.Series.Add(doughnutSeries);
break;
}
}
private DataTemplate GetBarColorDataTemplate()
{
StringReader markup = new StringReader(
@"<
DataTemplate
xmlns
=
""
http://schemas.microsoft.com/winfx/2006/xaml/presentation"">" +
@"<
Rectangle
Fill
=
""
{Binding DataItem.Color}""/>" +
@"</
DataTemplate
>");
XmlReader xmlReader = XmlReader.Create(markup);
return XamlReader.Load(xmlReader) as DataTemplate;
}
private DataTemplate GetLineDataPointDataTemplate()
{
StringReader markup = new StringReader(
@"<
DataTemplate
xmlns
=
""
http://schemas.microsoft.com/winfx/2006/xaml/presentation"">" +
@"<
Ellipse
Height
=
""
10""
Width
=
""
10""
Fill
=
""
{Binding DataItem.Color}""/>" +
@"</
DataTemplate
>");
XmlReader xmlReader = XmlReader.Create(markup);
return XamlReader.Load(xmlReader) as DataTemplate;
}