2017-06-07 3 views
0

Ich habe Probleme mit einem UserControl-Update auf der Hauptseite mit einem DispatcherTimer zu signalisieren, um neue Daten von einigen Temperatursensoren zu ziehen.C# usercontrol nicht mit DispatcherTimer Tick Ereignis

Sensors.xaml.cs

public sealed partial class Sensors : UserControl 
{ 
    public Sensors() 
    { 
     this.InitializeComponent(); 
    } 

    public string Sensorlbl 
    { 
     get { return (string)GetValue(SensorlblProperty); } 
     set { SetValue(SensorlblProperty, value); } 
    } 

    // Using a DependencyProperty as the backing store for Sensorlbl. This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty SensorlblProperty = 
     DependencyProperty.Register("SensorLbl", typeof(string), typeof(Sensors), null); 

Sensors.xaml

<Grid> 
    <TextBlock Name="SensorLbl" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,5,0,0" Text="{Binding Sensorlbl, ElementName=userControl, Mode=TwoWay}"/> 
</Grid> 

MainPage.xaml.cs

public MainPage() 
    { 
     tempTimer = new DispatcherTimer(); 
     tempTimer.Tick += GetTemp; 
     tempTimer.Interval = TimeSpan.FromMilliseconds(1000); 
     tempTimer.Start(); 

     Sensor1.Sensorlbl = "test"; 
    } 
    public void GetTemp(object sender, object e) 
    { 
     Sensor1.Sensorlbl = "Test Working"; 

     Debug.WriteLine(Sensor1.Sensorlbl); 
    } 

MainPage.xaml

<local:Sensors x:Name="Sensor1" Margin="0,0,0,0" Width="107" Height="155" /> 

Mit dem obigen Beispiel verwende ich nur, um zu versuchen, das Aktualisieren der UserControl in MainPage zu beweisen. Wenn ich das Programm starte, bekomme ich eine Ausgabe von "Test Working", aber der Bildschirm zeigt immer noch nur "test" an.

Vielen Dank für jeden Hinweis.

+0

Ich denke, es gibt einen Tippfehler in der DependencyProperty Definition: SensorLbl vs Sensorlbl. –

+0

Entschuldigung, das ist das erste Mal, dass ich mit C# arbeite (oder irgendetwas, das nicht auf Industrieroboter basiert). Was meinst du, ich habe die Implementierung von Sensor1.Sensorlbl nicht gezeigt? Der Code, den ich oben gepostet habe, ist der, den ich bei diesem Test ausgeführt habe. Sollte es andere Parameter MainPage.xaml geben? –

+0

Ja das war das Problem. Ich fühle mich jetzt irgendwie dumm, weil ich das nicht verstanden habe. Danke –

Antwort

0

Bei der Registrierung für eine DependencyProperty wird zwischen Groß- und Kleinschreibung unterschieden. Es muss genau dem Namen der Immobilie entsprechen. In Ihrem Fall haben Sie eine Diskrepanz: SensorLbl vs Sensorlbl.

+0

Danke nochmal für dich Hilfe. –

Verwandte Themen