title: Refresh Textblock value on Icommand call MVVM(WPF)
body: <p>Hello friends i have working with MVVM Desktop application. I have place label in my project
  first time label is binding but its not refreshing the value of label when Icommand call. Please help me below is my Code:</p>
  
  <p>//ViewModel</p>
  
  <pre><code>private string _Commentcount=string.Empty;
  public string CountComment
  {
      get
      {
          return _Commentcount;
      }
      set
      {
          if (_Commentcount == value)
          {
              return;
          }
          _Commentcount = value;
          RaisePropertyChanged("CountComment");
      }       
  }
  
  public void GetCommentsByThreadID(string ThreadID)
  {
      BindAllComments.Clear();
      List&lt;ProjectTabModel&gt; cmnts = ProjectTabModel.GetCommentsByThread(ThreadID);
      ObservableCollection&lt;ProjectTabModel&gt; obsrvblCmnts = new ObservableCollection&lt;ProjectTabModel&gt;(cmnts);
      var commentcnt = obsrvblCmnts.Count;
  
      if (obsrvblCmnts.Count &gt; 0)
      {
          CountComment = cmnts.Count.ToString();
          RaisePropertyChanged("CountComment");
          foreach (var item in obsrvblCmnts)
          {
              BindAllComments.Add(item);
          }
      }
      else
      {
          CountComment = "0";
          RaisePropertyChanged("CountComment");
          foreach (var item in obsrvblCmnts)
          {
              BindAllComments.Add(item);
          }
      } 
  
  
      //   return cmnts;
  }
  </code></pre>
  
  <p>//////////XAML/////////////////////</p>
  
  <pre><code>&lt;TextBlock Text="{Binding CountComment,UpdateSourceTrigger=Default, Mode=TwoWay}" Foreground="{Binding ElementName=Projectnamecolor,Path=Foreground}" x:Name="lblcommentcount" Canvas.Left="190" Canvas.Top="300" FontWeight="Bold" FontFamily="segoe_uilight" FontSize="18"&gt;&lt;/TextBlock&gt;
  </code></pre>
  
  <p>//Where i call my method GetCommentsByThreadID()</p>
  
  <pre><code>private class MouseUpCommand : ProjectTabViewModel, ICommand
  {
      public event EventHandler CanExecuteChanged;
      public void Execute(object sender)
      {
          var e = (MouseButtonEventArgs)sender;
          var device = e.MouseDevice.DirectlyOver;
          UIElement element = device as UIElement;
          while (element != null)
          {
              string ThreadID = string.Empty;
              if (element is TextBlock)
              {
                  var Item = element as TextBlock;
                  ThreadID = Item.Tag.ToString();
                  GetCommentsByThreadID(ThreadID);
                  // ProjectTabViewModel obj = new ProjectTabViewModel();
                  GlobalThreadID = ThreadID;
                  List&lt;ProjectTabModel&gt; lst = new List&lt;ProjectTabModel&gt;();
                  lst = ProjectTabModel.GetThreadDetails(ThreadID);
                  ThreadDetails(lst);
                  break;
              }
              if (element is Canvas)
              {
                  var Item = element as Canvas;
                  ThreadID = Item.Tag.ToString();
                  // ProjectTabViewModel obj = new ProjectTabViewModel();
                  //  obj.GlobalThreadID = ThreadID;
                  GetCommentsByThreadID(ThreadID);
                  GlobalThreadID = ThreadID;
                  List&lt;ProjectTabModel&gt; lst = new List&lt;ProjectTabModel&gt;();
                  lst = ProjectTabModel.GetThreadDetails(ThreadID);
                  ThreadDetails(lst);
                  break;
              }
              if (element is StackPanel)
              {
                  var Item = element as StackPanel;
                  ThreadID = Item.Tag.ToString();
                  // ProjectTabViewModel obj = new ProjectTabViewModel();
                  //        obj.GlobalThreadID = ThreadID;
                  GetCommentsByThreadID(ThreadID);
                  GlobalThreadID = ThreadID;
                  List&lt;ProjectTabModel&gt; lst = new List&lt;ProjectTabModel&gt;();
                  lst = ProjectTabModel.GetThreadDetails(ThreadID);
                  ThreadDetails(lst);
                  break;
              }
          }
      }
  
      public bool CanExecute(object parameter)
      {
          return true;
      }
  }
  </code></pre>