Série Fondation neuf wpf_MVVM_009 créer le nœud de l'arbre

Créer des nœuds d'arbre:
(1): classe de nœud d'arborescence de l' instruction pour l'icône de nœud de stockage, nom, type, ID, sous - ensemble.
(2): établir des ressources TreeView en XAML, les données de noeud pour l' affichage.
(3): dans les données de nœud d'arbre logique de code de commande, affecté à la classe;
(4): ItemSource affecté à la TreeView.
Exemples:
(1)
// dans le dossier "_10Base", la déclaration TreeView icône de stockage de classe, nom, collection de feuilles
TV public class ()
{
public String TvIcon {GET, SET;}
public String TvName {GET, SET;}
liste GET TvList {public; SET;}
}
(2)
note: [1] ainsi que la classe "TV ()" dans les références d'espace de noms, je l' ai nommé "myTree", des exemples,
<UserControl X: classe = "client" ._07Basice.UserControl3
...
xmlns: de myTree = "clr-namespace: client ._10Base"

<TreeView Name="myTreeView">
	<TreeView.Resources>
		<HierarchicalDataTemplate DataType="{x:Type myTree:TV }" 
				           ItemsSource = "{ Binding TvList , Mode = TwoWay , UpdateSourceTrigger=PropertyChanged }">
			<StackPanel Orientation="Horizontal" Margin="0,2" >
				<Image Height="18" Source="{ Binding TvIcon,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged }">
				</Image>
				<TextBlock Text="{Binding TvName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged }">
				</TextBlock>
			</StackPanel>
		</HierarchicalDataTemplate>
	</TreeView.Resources>
</TreeView >

Note [1]: Les nouvelles classes, apparaissent souvent « Vous ne trouvez pas ... » «n'existe pas ... », il n'y a pas besoin de corriger une erreur dans le chemin du code de confirmation, etc., puis, « Rebuild Solution » ou redémarrage « VS ".

(3):
[1]: 先引用命名空间
	using 客户端._10Base;
[2]:声明叶节点集合
private static List<TV> TVList1;
private static List<TV> TVList2;
private static List<TV> SelectTreeView()
{
	TVList = new List<TV>();
	for( int i = 0; i < 5 ; i ++ )
	{
		TVList2 = new List<TV>();
		for( int r = 0 ; r < 2 ; r ++ )
		{
			TV tvList2 = new TV();
			tvList2.TvIcon = "/../../Image/Afoot2.png"
			tvList2.TvName = "第二层子节点中的第"+r+"个节点";
			tvList2.TvList = new List<TV>();
			TVList2.Add(tvList2);
		}
		  TV tvList1 = new TV();
           			   tvList1.TvIcon = "/../../Images/Afoot3.png";
          			   tvList1.TvName = "第一层子节点"+i+"";
          			   tvList1.TvList = TVList2;
              		  TVList1.Add(tvList1);
	}
	 List<TV> TV0 = new List<_10Base.TV>()
           		 {
          		      new TV(){
                		    TvIcon = "/../../Images/Afoot1.png",
             		    TvName = "顶层父节点",
                		    TvList = TVList1,
            		    }
         		   };
      	      return TV0;
}
(4)
private void Main()
{
	List<TV> stvTask = SelectTreeView();
	this.myTreeView.ItemsSource = stvTask ;
}

Note: [1]: déclaration (interface) XAML dans la composition de l'espace de noms: « Nom du projet + nom du dossier »,
et la composition d'une déclaration d'espace de noms dans le (logique) Code: « Nom du projet + demander le nom du dossier de prix »;
ils sont deux de la même composition, si l'existence réelle de la classe, l' affichage «n'existe pas ... », cliquez sur le projet, sélectionnez « Reconstruire solution » dans l'espace de noms.
[2]: pour les champs des nœuds d'arbre de classe, vous pouvez définir un nombre illimité, par exemple,
public class TV
{
// constructeur aussi être utilisé pour initialiser le
public , le téléviseur ()
{
this.TvIcon = « / ... / ... / requis l'icône par défaut ";
this.TvName =" nom par défaut « ;
}
public String TvIcon {GET, SET;}
public String TvName {GET, SET;}
publique Liste TvList {GET, SET;}
publique TvType TvType {GET, SET; }
public String {TVID GET, SET;}
}
public enum TvType
{
TvFather, // racine
TvSon, // feuille
TvStruct // Structure
}
[3] dans la (interface) appelée membres de la classe, en utilisant des mots - clés Reliure:

Si le champ est appelé, vous ne trouvez pas dans une classe, le contenu n'est pas affiché. Sans erreur.

Publié 131 articles originaux · a gagné les éloges 36 · vues 10000 +

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44548307/article/details/104800219
conseillé
Classement