title: Xamarin Timer crashes
body: <p>So I've done this in code:</p>
  <pre><code>public partial class Timer : ContentView , INotifyPropertyChanged
      {
          private int seconds = 30;
          
          private System.Timers.Timer timer;
          public Timer()
          {
              InitializeComponent();
              timer = new System.Timers.Timer();
              timer.Interval = 1000;
              timer.AutoReset = true;
              timer.Elapsed += new System.Timers.ElapsedEventHandler(OneSecondPassed);
              timer.Enabled = true;
          }
          private void OneSecondPassed(object source, System.Timers.ElapsedEventArgs e)
          {
              seconds--;
              Time = seconds.ToString();
          }
          public event PropertyChangedEventHandler PropertyChanged;
          public string Time
          {
              get =&gt; seconds.ToString();
              set
              {
                  Time = value;
                  if (PropertyChanged != null)
                  {
                      PropertyChanged(this ,  new PropertyChangedEventArgs(&quot;Time&quot;));
                  }
                  
              }   
          }
      }
  </code></pre>
  <p>and then bound my label's text to it in XAML:</p>
  <pre><code> &lt;Label  BindingContext =&quot;{x:Reference this}&quot;
                Text=&quot;{Binding Time}&quot;/&gt;
  </code></pre>
  <p>When I start the app, it crashes...I don't really understand how PropertyChanged works, just that INotifyPropertyChanged implements it.Also, when I declare PropertyChanged, it tells me that BindableObject.PropertyChanged already exists, use new in order to hide it.If you could explain how the interface and its event works, I'd be really thankful.</p>