INotifyPropertyChanged - always null

  • Thread starter Thread starter Piotr_Kowalski
  • Start date Start date
P

Piotr_Kowalski

Guest
Hi,

My class "ship" should change value of property "ShipOnePos" continuously. This value is binded to one of UI element (image) property. I like to update my UI according to "ShipOnePos" (when it is changed). So for this reason I use interface INotifyPropertyChanged, but UI is not updating, and PropertyChanged value is always null.

Can You advice what I miss, or what is wrong in this implementation ?

Class:

namespace DzienNaWyscigach
{
public class ship : INotifyPropertyChanged
{

public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}

}

private int MyShipOnePos;

public int ShipOnePos
{
get { return MyShipOnePos; }
set { MyShipOnePos = value; NotifyPropertyChanged(); }
}

public void ShipsMovment()
{
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(500);
timer.Tick += Timer_Tick;
timer.Start();

}

private void Timer_Tick(object sender, EventArgs e)
{
ShipOnePos= ShipOnePos+10;

}
}
}

UI Binding

<Image x:Name="ShipOne" HorizontalAlignment="Left" Height="71" Margin="31,32,0,0" VerticalAlignment="Top" Width="80" Source="Asets/ship1.png" RenderTransformOrigin="0.5,0.5">
<Image.DataContext>
<local:ship/>
</Image.DataContext>
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform X="{Binding Path=ShipOnePos, Mode=OneWay}"/>
</TransformGroup>
</Image.RenderTransform>

Code behind

private void BTN_Start_Click(object sender, RoutedEventArgs e)
{
ship Ships = new ship();
Ships.ShipsMovment();

}


BR

Piotr



Piotr

Continue reading...
 
Back
Top