/ / c # Korzystanie z kontrolki TreeView w SplitContainer do zmiany zawartości - c #, winformy, widok drzewa, splitcontainer

c # Korzystanie z kontrolki TreeView w SplitContainer do zmiany zawartości - c #, winformy, widok drzewa, splitcontainer

mam TreeView po lewej stronie SplitContainer i chciałbym, aby treść po prawej stroniezmienić po kliknięciu na TreeNode. Co próbuję zrobić, to okno "ustawień", takie jak w Putty, tj. Zawartość po prawej stronie może być dość skomplikowana.

Putty http://unixwiz.net/images/putty-openssh-3.gif

Pomysł polega na tym, aby panel dla zawartości dla każdego węzła drzewa, dodać wszystkie panele po prawej stronie i pokazać / ukryć je na podstawie kliknięć w widoku drzewa.

Czy to właściwe podejście? Czy jest lepszy? Jaki jest najlepszy sposób połączenia węzłów drzewa z ich panelami, np. Pewnego rodzaju MVC?

Dziękuję Ci

Tomek

Odpowiedzi:

3 dla odpowiedzi № 1

Możesz mieć wiele paneli z indywidualnymiprojektanci, którzy akceptują obiekt kontekstu w celu wypełnienia lub zapisania powiązanych ustawień Następnie w swoim TreeView możesz użyć właściwości Tag każdego węzła, aby zachować odpowiedni panel, a po wybraniu pokazać panel w prawym panelu.

Oto kod:

interface ISettingPanel
{
SettingContext Context{get;set;}
}

public BasicSettingPanel:Panel,ISettingPanel
{
....
}

public void InitTreeView
{
var node=new TreeNode();
node.Tage=new BasicSettingPanel();// or you can set the type to create the panel later
treeView.Nodes.Add(node);
}

public void AfterNodeSelected()
{
_currentPanel=null;
var selectedNode=treeView.SelectedNode;
var panel=selectedNode.Tag as Panel;
if(panel!=null)
_currentPanel=panel;
(_currentPanel as ISettingPanel).Context=this.Context;
}