Bonsoir à tous,

voilà je voulais faire un contrôle appelé TreeNode hérité de TreeViewItem qui présenterait notamment 2 propriétés public Checked et TreeNodeText décrite ci-dessous

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
 
public partial class TreeNode : TreeViewItem
    {
        public TreeNode()
        {
            InitializeComponent();
        }
 
        public string TreeNodeText
        {
            get { return treeNodeTextBlock.Text; }
            set { treeNodeTextBlock.Text = value; }
        }
 
        public bool Checked
        {
            get { return (bool)checkBox.IsChecked; }
            set { checkBox.IsChecked = value; }
        }
    }
et le xaml du truc :

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
 
<TreeViewItem.Header>
        <CheckBox x:Name="checkBox"
                  BorderThickness="1"
                  Height="16">
            <TextBlock x:Name="treeNodeTextBlock"
                       HorizontalAlignment="Left"
                       Height="14"
                       TextWrapping="Wrap"
                       Text="Text"
                       VerticalAlignment="Center"
                       FontSize="10"
                       FontFamily="Microsoft Sans Serif"
                       Margin="8,4,0,0"/>
        </CheckBox>
</TreeViewItem.Header>
Mon problème c'est que maintenant quand j'utilise ce TreeNode comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<TreeView x:Name="tree">
              <uc:TreeNode TreeNodeText="item1"/>
</TreeView>
En ajoutant bien sûr la référence vers le contrôle, apparemment pas d'erreur de ce côté là car le fait de mettre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<TreeView x:Name="tree">
              <uc:TreeNode/>
</TreeView>
ne produit pas d'erreur, le comble c'est qu'on me propose automatiquement la propriété quand je commence à écrire son nom.

Ca ne compile pas et une erreur me dit : "Le membre TreeNodeText n'est pas reconnu ou n'est pas accessible"

Le fait d'ajouter des balises <TreeViewItem> </TreeViewItem> de part et d'autres de TreeViewItem.Header dans le code XAML ne change rien

D'ailleurs je ne savais pas qu'on pouvait hériter de TreeViewItem aussi facilement mais j'ai quand même essayé et apparemment j'ai pas eu d'erreur avant d'introduire ces propriétés, enfin peut-être que l'erreur vient de là quand même...

Vous auriez des suggestions ?

Merci d'avance