Hello Hamidreza,
The issue is related to a change of the BindingContext in RadTreeView when its Parent ToolWindow changes its state from Dock to AutoHide. In this situation the Parent of the ToolWindow is changed and also the BindingContext is reset. I logged the issue in our Public Issue Tracking System. Currently, you can use BindingContextChanged event handler to work around the issue in your application:
using
System;
using
System.Data;
using
System.Windows.Forms;
using
Telerik.WinControls.UI;
namespace
ForTest
{
public
partial
class
Form1 : Form
{
private
DataTable dtlevel =
new
DataTable();
private
System.Drawing.Font NewFontObj =
new
System.Drawing.Font(
"Tahoma"
, 8F, System.Drawing.FontStyle.Regular);
public
Form1()
{
InitializeComponent();
this
.treelevel.BindingContextChanged +=
new
EventHandler(treelevel_BindingContextChanged);
}
void
treelevel_BindingContextChanged(
object
sender, EventArgs e)
{
LoadTreeView();
}
private
void
Form1_Load(
object
sender, EventArgs e)
{
dtlevel.Columns.Add (
"LevelId"
,
typeof
(
int
));
dtlevel.Columns.Add(
"LevelName"
,
typeof
(
string
));
for
(
int
i = 0; i < 4; i++)
{
DataRow dr = dtlevel.NewRow();
dr[
"LevelId"
] = (i+1).ToString ();
dr[
"LevelName"
] =
" ??? "
+ (i + 1).ToString();
dtlevel.Rows.Add(dr);
}
LoadTreeView();
txtDetail.Font = NewFontObj;
btnOk.Font = NewFontObj;
txtDetail.Text =
"ForTest"
;
}
private
void
LoadTreeView()
{
if
(dtlevel.Columns.Count == 0)
{
return
;
}
treelevel.DataSource = dtlevel;
treelevel.DisplayMember = dtlevel.Columns[
"LevelName"
].Caption;
treelevel.ValueMember = dtlevel.Columns[
"LevelId"
].Caption;
treelevel.CheckBoxes =
true
;
foreach
(RadTreeNode node
in
treelevel.Nodes)
{
node.Checked =
true
;
node.Font = NewFontObj;
}
}
}
}
I hope this helps.
Regards,
Julian Benkov
the Telerik team