J'ai créé un UserControl destiné à être mis à jour toutes les quelques secondes avec les données d'un port série. Ce UserControl devrait être très simple, composé d'une étiquette pour un nom de champ et d'une autre étiquette contenant la valeur du champ. Je dis que devrait être être simple, mais cela ne fonctionne pas. Il ne se met pas du tout à jour et n'affiche même pas le nom du champ.Problème wpf lors de l'utilisation des propriétés de dépendance dans UserControl
Voici le code:
public partial class LabeledField : UserControl {
public LabeledField() {
InitializeComponent();
}
public string fieldName {
get { return fieldNameLabel.Content.ToString(); }
set { fieldNameLabel.Content = value; }
}
public string fieldValue {
get { return (string)GetValue(fieldValueProperty); }
set { SetValue(fieldValueProperty, value); }
}
public static readonly DependencyProperty fieldValueProperty =
DependencyProperty.Register(
"fieldValue",
typeof(string),
typeof(LabeledField),
new FrameworkPropertyMetadata(
"No Data"
)
)
;
}
Voici le XAML:
<UserControl x:Class="DAS1.LabeledField" Name="LF"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel Orientation="Horizontal">
<Label Width="100" Height="30" Background="Gray" Name="fieldNameLabel" />
<Label Width="100" Height="30" Background="Silver" Name="fieldValueLabel" Content="{Binding fieldValue}" />
</StackPanel>
Et voici le XAML pour la fenêtre qui fait référence à la UserControl. Tout d'abord l'en-tête:
<Window x:Class="DAS1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:me="clr-namespace:DAS1"
Title="Window1" Height="580" Width="780">
Puis le UserControl lui-même:
<me:LabeledField fieldName="Test" Width="200" Height="30" fieldValue="{Binding businessObjectField}"/>
Si je savais une question plus précise à poser, je - mais quelqu'un peut me dire pourquoi cela ne fonctionne pas?
Enfin! Passé 5 heures à figurer choses dehors. TNX! – zdrsh
Merci! Une solution simple était exactement ce dont j'avais besoin. – dex3703