DependencyProperty Binding WPF
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:
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:
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:
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