Hice un UserControl que debe actualizarse una vez cada pocos segundos con datos de un puerto serie. Este UserControl debe ser muy simple, que consiste en una etiqueta para un nombre de campo y otra etiqueta que contiene el valor del campo. Yo digo que debería ser simple, pero no funciona. No se actualiza en absoluto, y ni siquiera muestra el nombre del campo.wpf problema al usar propiedades de dependencia en un UserControl
A continuación se muestra el código:
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"
)
)
;
}
Aquí es el 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>
Y aquí es el XAML para la ventana que hace referencia al control de usuario. En primer lugar el encabezado:
<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">
A continuación, el propio control de usuario:
<me:LabeledField fieldName="Test" Width="200" Height="30" fieldValue="{Binding businessObjectField}"/>
Si supiera de una pregunta más específica a pedir, me gustaría - pero puede alguien decirme por qué esto no funciona?
Finalmente BranchId' a'.! Pasé 5 horas pensando cosas fuera. TNX! – zdrsh
¡Gracias! Solución simple era justo lo que necesitaba. – dex3703