In my program's main window I have a `TreeView` and a `ContentPresenter`. The display of the `ContentPresenter` is determined by what node is selected in the `TreeView`. 

The name of one of my nodes is allowed to be changed by the user via `contentMenu`. All the user has to do is right click the node and select the new name out of the choices. The `ContentPresenter` is supposed to have a null display until the user chooses a name for the node. 

The problem occurs when a new name is selected from the `contentMenu`. The `ContentPresenter`'s display changes, like it should, but only after the user selects a different node (changing the display), and then re-selects the original node.

How do I make it so that the display on the `ContentPresenter` changes right when the `TreeView` node's name is changed?

**TreeViewViewModel:**

```
public class TreeViewViewModel : PropertyChangedBase
{
     public TreeViewViewModel()
     {
          Node = new Node() { NodeName = "Blank", NodeDataModel = new NodeModel(),
                Commands = { new Command(nodeType_name1), new Command(nodeType_name2) } };
     }

     //These functions call to the NodeName property in the TreeView's Data Model
     private void nodeType_name1()
     {
          Node.NodeName = "Name1";
     }

     private void nodeType_name2()
     {
          Node.NodeName = "Name2";
     }
}

```

**XAML for MainWindow:**

```
<!-- Tree view items & Functions -->
<TreeView Name="Tree_One" ItemsSource="{Binding DataTree.Data}" ... >
     <TreeView.Resources>
           <SolidColorBrush Color="LightSkyBlue" x:Key="{x:Static SystemColors.HighlightBrushKey}" />
     </TreeView.Resources>
 </TreeView>

 <!--- Left Widget -->
 <ContentPresenter Content="{Binding LeftWidget}" />

```

**MainWindowViewModel:**

```
public class MainWindowViewModel : PropertyChangedBase
{
     private TreeViewViewModel _dataTree;

     public MainWindowViewModel()
     {
          _dataTree = new TreeViewViewModel();
     }

     public TreeViewViewModel DataTree { ... }

     //This function is in charge of changing the display of the ContentPresenter
     // I think that my problem can probably be solved by doing something here
     public void ChangeViews()
     {
          if (_dataTree.SelectedItem is Node)
          {
               var _node = _dataTree.SelectedItem as Node;
               var nodeViewModel = new NodeViewModel(_node.NodeDataModel);

               if (_node.NodeName== "Unknown")
                    LeftWidget = null; //This is the Content Presenter **
               if (_node.NodeName == "Name1")
               {
                   LeftWidget = nodeViewModel;
               }

               if (_node.NodeName == "Name2") {...}
          }
     }
}

```