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.

Inserisci Descrizione dell'immagine qui

*************************** 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;
    }
.

È stato utile?

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>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top