wpf kłopoty z wykorzystaniem właściwości zależności w UserControl
Zrobiłem UserControl, który ma być aktualizowany raz na kilka sekund danymi z portu szeregowego. Ta kontrola użytkownika powinna być bardzo prosta, składająca się z etykiety dla nazwy pola i innej etykiety zawierającej wartość pola. Mówię topowinien być prostym, ale to nie działa. Nie aktualizuje się wcale i nie wyświetla nawet nazwy pola.
Poniżej znajduje się kod:
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"
)
)
;
}
Oto 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>
A oto XAML dla okna, które odwołuje się do UserControl. Najpierw nagłówek:
<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">
Następnie sam UserControl:
<me:LabeledField fieldName="Test" Width="200" Height="30" fieldValue="{Binding businessObjectField}"/>
Gdybym wiedział o bardziej szczegółowym pytaniu, chciałbym - ale czy ktoś może mi powiedzieć, dlaczego to nie działa?