launch testcase and "play" with tree - expand and collapse some nodes
testcase:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Eto;
using Eto.Forms;
using Eto.Drawing;
using System.Threading;
namespace etotest
{
class Program
{
[STAThread]
static void Main(string[] args)
{
var generator = Generator.GetGenerator("Eto.Platform.Wpf.Generator, Eto.Platform.Wpf");
var app = new TestApplication(generator);
app.Run(args);
}
}
public class TestApplication : Application
{
public TestApplication(Generator generator)
: base(generator)
{
this.Name = "Test Application";
}
public override void OnInitialized(EventArgs e)
{
this.MainForm = new MainForm();
HandleEvent(Application.TerminatingEvent);
base.OnInitialized(e);
// show the main form
this.MainForm.Show();
}
}
public interface IMyTreeGridItem : ITreeGridItem
{
String Name { get; set; }
}
public class MyTreeGridItem : TreeGridItem, IMyTreeGridItem
{
public String Name { get; set; }
}
public class MainForm : Form
{
int[] arr = new int[] { 5, 5, 5, 5 };
TreeGridView tv;
void CreateItem(TreeGridItem aParent, string aBaseName, int aLevel)
{
var lName = "[" + aLevel + "]" + aBaseName;
var lItem = new MyTreeGridItem();
lItem.Name = lName;
aParent.Children.Add(lItem);
if (aLevel < arr.Length)
for (int i = 0; i < arr[aLevel]; i++)
CreateItem(lItem, aBaseName + i.ToString(), aLevel + 1);
}
void CreateTree()
{
TreeGridItem lRoot = new MyTreeGridItem();
CreateItem(lRoot, "Name", 0);
Application.Instance.Invoke(delegate
{
tv.DataStore = lRoot;
tv.Expanding += (sender, e) =>
{
(e.Item as IMyTreeGridItem).Name = "Expanded";
};
tv.Collapsing += (sender, e) =>
{
(e.Item as IMyTreeGridItem).Name = "Collapsed";
};
});
}
public MainForm()
{
Size = new Size(900, 800);
var lp = new Panel();
this.AddDockedControl(lp, new Padding(5));
var lPanelLayout = new TableLayout(lp, 1, 2);
lPanelLayout.Padding = new Padding(0);
tv = new TreeGridView();
tv.Columns.Add(new GridColumn { DataCell = new TextBoxCell("Name") });
lPanelLayout.Add(tv, 0, 1, true, true);
CreateTree();
}
}
windows/wpf
launch testcase and "play" with tree - expand and collapse some nodes
testcase:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Eto; using Eto.Forms; using Eto.Drawing; using System.Threading;
namespace etotest { class Program { [STAThread] static void Main(string[] args) { var generator = Generator.GetGenerator("Eto.Platform.Wpf.Generator, Eto.Platform.Wpf");
}