wpf Probleme mit dependency Eigenschaften in einem UserControl

Machte ich ein Benutzersteuerelement, das aktualisiert werden soll, sobald alle paar Sekunden mit Daten von einem seriellen port. Dieses UserControl sollte sehr einfach sein, bestehend aus einer Bezeichnung für ein Feld name, und ein weiteres Etikett mit den Feld-Wert. Ich sage, dass es sollte einfach, aber es funktioniert nicht. Es aktualisiert sich nicht bei allen, und nicht einmal die Anzeige der Feldnamen.

Unten ist der 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"
            )
        )
    ;
}

Hier ist das 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>

Und hier ist der XAML-Code für das Fenster, welcher sich auf das Benutzersteuerelement. Zuerst die Kopfzeile:

<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">

Dann das Benutzersteuerelement selbst:

<me:LabeledField fieldName="Test" Width="200" Height="30" fieldValue="{Binding businessObjectField}"/>

Wenn ich wusste, dass der eine spezifischere Frage zu stellen, würde ich-aber kann mir jemand sagen warum das nicht funktioniert?

InformationsquelleAutor Klay | 2009-07-17
Schreibe einen Kommentar