Il nome "ABC" non esiste nello spazio dei nomi "CLR-NAMSpace: ABC"
-
21-12-2019 - |
Domanda
Sto cercando di costruire un albero nel controllo DevExpress della modalità non legata in WPF. Ho represso il seguente link costruire un albero in modalità non legata .Si prega di controllare l'immagine, ottengo errori nel codice XAML. L'output richiesto è che i dati codificati rigidi devono apparire in Treelist ma l'uscita visualizzata è solo una struttura ad albero se rimuovo il codice XAML dalla riga 38-44.So che l'errore è in XAML ancora, fornisco anche il codice CS.
*************************** Codice *****************************************
namespace PstImporter
{
/// <summary>
/// Interaction logic for pstSelect.xaml
/// </summary>
public partial class pstSelect : Window
{
string stgPath;
public pstSelect ()
{
InitializeComponent();
treePstSelect.Visibility = Visibility.Hidden;
List < MailboxHelper.Folder > lstMailBoxHelper = Globals.selectFolder(fileName);
buildTree(lstMailBoxHelper);
treeListView1.ExpandAllNodes();
this.barButtonItem1.ItemClick += this.barButtonItem1_ItemClick;
}
public class ProjectObject
{
public string Name { get; set; }
public string Executor { get; set; }
}
private void buildTree (List<MailboxHelper.Folder> lstMailBoxHelper)
{
TreeListNode rootNode = CreateRootNode(new ProjectObject() { Name = lstMailBoxHelper[0].displayName, Executor = lstMailBoxHelper[1].displayName });
TreeListNode childNode = CreateChildNode(rootNode, new ProjectObject() { Name = lstMailBoxHelper[2].displayName, Executor = lstMailBoxHelper[1].displayName });
CreateChildNode(childNode, new ProjectObject() { Name = lstMailBoxHelper[3].displayName, Executor = lstMailBoxHelper[1].displayName });
}
private TreeListNode CreateRootNode(object dataObject)
{
TreeListNode rootNode = new TreeListNode(dataObject);
treeListView1.Nodes.Add(rootNode);
return rootNode;
}
private TreeListNode CreateChildNode (TreeListNode parentNode, object dataObject)
{
TreeListNode childNode = new TreeListNode(dataObject);
parentNode.Nodes.Add(childNode);
return childNode;
}
. Soluzione
Non è possibile fare riferimento alle classi annidate in XAML.Ecco ciò che MSDN dice sulle classi annidate
http://msdn.microsoft.com/en-us/library/ms753379.aspx
.La tua classe personalizzata non deve essere una classe nidificata.Classi nidificate e il "Dot" nel loro generale sintassi dell'utilizzo CLR interferire con l'altro WPF e / o caratteristiche XAML come le proprietà allegate.
È possibile estrarre la tua classe ProjectObject
dalla classe finestra
namespace PstImporter
{
public class ProjectObject
{
public string Name { get; set; }
public string Executor { get; set; }
}
}
.
Quindi è possibile fare riferimento ad esso
xmlns:local="clr-namespace:PstImporter"
<local:ProjectObject>
.