title: OnPropertyChange(null) makes hyperlink disappear
body: <p>Code first (upper <code>TextBox</code> is simplified for purpose of this question) :</p>
  
  <pre><code>&lt;TextBlock
                  Style="{StaticResource  FieldNameStyle }"
                  TextWrapping ="Wrap" Height="33" FontSize="12"
                  Visibility="Visible"
                  TextAlignment="Center"
                  Foreground="#FFFFFF"
                  Opacity="0.5"                                      
                  Text="{Binding UnderLineMsg}"&gt;      
  
                  &lt;Hyperlink  Name="PrivacyNoticeLink2"                                 
                  Command="{Binding OpenPrivacyNoticeCommand}"&gt;   
                      &lt;TextBlock 
                          Visibility="Visible"
                          Name="privacyNoticeText2"
                          Text="{Binding PrivacyNoticeButtonLabel,FallbackValue='privacy notice' ,UpdateSourceTrigger=PropertyChanged}"/&gt;                        
                  &lt;/Hyperlink&gt; 
              &lt;/TextBlock&gt;
  </code></pre>
  
  <p>this is what it looks after the window loads for the first time : Under line msg filler: link</p>
  
  <p>one of the events in the window triggers a call to  </p>
  
  <pre><code>OnPropertyChanged(null);
  </code></pre>
  
  <p>the method triggers a  "refresh" in all the members in the window that are subscribed to it with :</p>
  
  <pre><code> UpdateSourceTrigger=PropertyChanged
  </code></pre>
  
  <p>once called the Hyperlink element disappears completely (verified using Snoop 2.8)
  so after the call it will look like this: 
  Under line msg filler:</p>
  
  <p>i have NO idea why this is happening. the current fix is replacing the general <code>OnPropertyChanged</code> call with many specific ones but that is not a realistic option in the long run.</p>
  
  <p>EDIT :
  <strong><em>Isolated the issue to a new project, note the issue still happens when its only a textblock within a textblock</em></strong></p>
  
  <p>simple XAML with a button that triggers OnPropertyChanged</p>
  
  <pre><code>&lt;Grid&gt;
          &lt;Button Click="Meh"   Margin="171,37,153,199"&gt;
              PRESS ME
          &lt;/Button&gt;
  
          &lt;TextBlock  Name="WrapperText" Text= "{Binding randomNumber}"&gt;
  
                  &lt;TextBlock  Name="linkText" Text="{Binding randomNumStr }"&gt;&lt;/TextBlock&gt;
  
          &lt;/TextBlock&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p>Code behind:</p>
  
  <pre><code>public MainWindow()
      {
          DataContext = new Stuff();
          InitializeComponent();
  
      }
  
      public void Meh(object sender, RoutedEventArgs e)
      {
          //MessageBox.Show(this, "BLA", "caption", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
          //MessageBox.Show("FASDFASDFASDF");
         (DataContext as Stuff).OnPropertyChanged(null);
  
          //Msg.ShowMessageBox("BLA", "caption", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
  
      }
  </code></pre>
  
  <p>the "view model"</p>
  
  <pre><code>public class Stuff : INotifyPropertyChanged
  {
      public Stuff()
      {
          rnd = new Random();
      }
  
      private Random rnd;
  
      public int randomNumber =&gt; rnd.Next(1, 100);
  
      public string randomNumStr =&gt; randomNumber.ToString()+"Text";
      public event PropertyChangedEventHandler PropertyChanged;
  
      [NotifyPropertyChangedInvocator]
      public  virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
      {
          PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
      }
  }
  </code></pre>
  
  <p>Note the truly disgusting way that I trigger the property change. I know I should use Icommand in the 'Stuff' class but I wanted to isolate the problem quickly. In my original code, it's done properly.</p>