Bonjour à tous,

J'ai un soucis avec le DependencyProperty de mon UserControl.

En effet lorsque je veux Binder une des propriétés, tout simplement rien ne se passe :

Voici le code complet du UserControl :
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
Public Class MateriauItem
    Inherits UserControl
 
 
#Region "Fields"
 
    Private _IsUsed As Boolean
    Private _Nom As String
    Private _Epaisseur As Integer
 
#End Region
 
#Region "Properties"
 
    Public Shared ReadOnly NomProperty As DependencyProperty = DependencyProperty.Register("Nom", GetType(String), GetType(MateriauItem), New PropertyMetadata(Nothing))
 
    Public Property IsUsed As Boolean
        Get
            Return Me._IsUsed
        End Get
 
        Set(ByVal value As Boolean)
            Me._IsUsed = value
            ChkUse.IsChecked = value
        End Set
    End Property
 
    Public Property Nom As String
        Get
            GetValue(NomProperty)
        End Get
 
        Set(ByVal value As String)
            SetValue(NomProperty, value)
            TbName.Text = value
        End Set
    End Property
 
    Public Property Epaisseur As Integer
        Get
            Return Me._Epaisseur
        End Get
 
        Set(ByVal value As Integer)
            Me._Epaisseur = value
            CbxEpaisseur.SelectedItem = value
        End Set
    End Property
 
#End Region
 
#Region "Constructor"
 
    Public Sub New()
        ' Cet appel est requis par le concepteur.
        InitializeComponent()
 
        ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
    End Sub
 
#End Region
 
End Class

Voici le code XAML de l'utilisation du UserControl :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
                    <ListBox x:Name="LbxMateriaux">
                        <ListBox.ItemTemplate>
                            <DataTemplate DataType="{x:Type local:Materiau}" >
                                <local:MateriauItem Nom="{Binding Path=Label}" />
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>


Et enfin le code d'ajout d'un matériau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Dim mt As Materiau = New Materiau("test1")
LbxMateriaux.Items.Add(mt)

L'élément est donc bien ajouté dans la liste mais la valeur "test1" n'est pas affichée.

Je bloque depuis quelques jours là dessus, je me permets donc de solliciter vos compétences.

D'avance merci