Bonjour à tous,

Tout d'abord je tiens à dire que je me suis inspiré de ce post pour tenter de résoudre mon problème mais je n'y suis pas parvenu.

Voici la structure de mon projet:

J'ai un User control contenant un Tree view :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    <Grid>
        <!--Tree view in the first column of the principal grid-->
        <TreeView x:Name="myTreeViewWPF" 
                      ScrollViewer.VerticalScrollBarVisibility="Visible" 
                      SelectedItemChanged="TreeView_OnSelectedItemChanged" Margin="53,26,41,43" ItemsSource="{Binding cNodeClass}" >
 
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Children }" >
                    <TextBlock Text="{Binding Title}"/>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>
    </Grid>
Ce User Control est appelé dans une vue:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    <Grid>
        <ProductionWorkingParametersTableComponent:ProductionWorkingParametersTable />
    </Grid>
</UserControl>
Dans le code behind de cette vue je renseigne le datacontext:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
public partial class TreeView_View : UserControl
    {
        //------------------------------------------------------------------------
        //------------------------------------------------------------------------
        #region Fields
        TreeView_ViewModel treeView_ViewModel; // ViewModel of the view contains the data needed by the view 
        #endregion
 
        //------------------------------------------------------------------------
        //------------------------------------------------------------------------
        #region Constructor
        public TreeView_View()
        {
            InitializeComponent();
 
            // set the datacontext of the view
            treeView_ViewModel = new TreeView_ViewModel();
            DataContext = treeView_ViewModel;
        }
        #endregion
Voici maintenant le view model :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
public class TreeView_ViewModel 
    {
        //------------------------------------------------------------------------
        //------------------------------------------------------------------------
        #region Properties
 
        private NodeClass _cNodeClass = new NodeClass();
        public NodeClass cNodeClass
        {
            get { return _cNodeClass; }
            set { _cNodeClass = value; }
        }
 
        #endregion
 
 
        //------------------------------------------------------------------------
        //------------------------------------------------------------------------
        #region Constructor
        public TreeView_ViewModel()
        {
            this.RetrieveTreeViewInformation();
        }
        #endregion
 
        //------------------------------------------------------------------------
        //------------------------------------------------------------------------
        #region Methods
 
        /// <summary>
        /// Used to retrieve information of the tree view
        /// </summary>
        private void RetrieveTreeViewInformation()
        {
            NodeClass myClass = new NodeClass();
 
            myClass.Text = "myText";
 
            this.cNodeClass = myClass;
 
            myClass.Children.Add(new NodeClass { Text = "coucou" });
        }
        #endregion
    }
Ma classe NodeClass est de type:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 public class NodeClass
    {
        public string Text { get; set; }
 
        private ObservableCollection<NodeClass> _Children = new ObservableCollection<NodeClass>();
        public ObservableCollection<NodeClass> Children
        {
            get
            {
                return (this._Children);
            }
            private set
            {
                this._Children = value;
            }
        }
    }
Et pour finir la vue contenant mon user control est appelée dans mon main window.xaml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
    <Grid>
        <ScreenView:TreeView_View />
    </Grid>
</Window>
Voilà pour la structure du projet, rien ne s'affiche sur mon TreeView, j'ai un doute sur le binding de "ItemSource" du tree view sur ma class cNodeClass mais j'ai tenté d'autres possibilités sans succès ...

Merci à vous de me venir en aide !