title: Bind value from one class to another value in another class
body: <p>I have the following classes <a href="https://gist.github.com/anonymous/9306399" rel="nofollow">gist with the classes</a>.<br/>
  I want to bind Item.Visible to Items.ItemsVisible - is it possible?, if so - how?</p>
  
  <p>Item.cs:</p>
  
  <pre><code>using System;
  using System.ComponentModel;
  
  namespace WpfApplication85
  {
      /// &lt;summary&gt;
      /// Item Object.
      /// &lt;/summary&gt;
      public class Item : INotifyPropertyChanged
      {
          #region INotifyPropertyChanged
  
          public event PropertyChangedEventHandler PropertyChanged; //Event to notify when Property changed.
  
          /// &lt;summary&gt;
          /// Notify that Property has Changed.
          /// &lt;/summary&gt;
          /// &lt;param name="propertyName"&gt;The name of the Property&lt;/param&gt;
          protected void NotifyPropertyChanged(string propertyName)
          {
              if (PropertyChanged != null)
              {
                  PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
              }
          }
  
          #endregion
  
          #region Private Variables
  
          private bool _Visible; //Bool to determine if the Item is visible or not
  
          #endregion
  
          #region Public Properties
  
          //Return the value of Visible / Set the value of Visible and Notify.
          public bool Visible 
          {
              get { return _Visible; }
              set 
              { 
                  _Visible = value;
                  NotifyPropertyChanged("Visible");
              }
          }
  
          #endregion
  
          #region Constructor
  
          /// &lt;summary&gt;
          /// Item Constructor
          /// &lt;/summary&gt;
          public Item()
          {
              _Visible = true;
          }
  
          #endregion
      }
  }
  </code></pre>
  
  <p>Items.cs:</p>
  
  <pre><code>using System;
  using System.Collections.ObjectModel;
  using System.ComponentModel;
  
  namespace WpfApplication85
  {
      /// &lt;summary&gt;
      /// Items Object.
      /// &lt;/summary&gt;
      public class Items : INotifyPropertyChanged
      {
          #region INotifyPropertyChanged
  
          public event PropertyChangedEventHandler PropertyChanged; //Event to notify when Property changed.
  
          /// &lt;summary&gt;
          /// Notify that Property has Changed.
          /// &lt;/summary&gt;
          /// &lt;param name="propertyName"&gt;The name of the Property&lt;/param&gt;
          protected void NotifyPropertyChanged(string propertyName)
          {
              if (PropertyChanged != null)
              {
                  PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
              }
          }
  
          #endregion
  
          #region Private Variables
  
          private bool _itemsVisible; //Bool to determine if the Items are visible or not
          private ObservableCollection&lt;Item&gt; _itemsCollection; //Collection of Items.
  
          #endregion
  
          #region Public Properties
  
          //Return the value of ItemsVisible / Set the value of ItemsVisible and Notify.
          public bool ItemsVisible
          {
              get { return _itemsVisible; }
              set 
              { 
                  _itemsVisible = value;
                  NotifyPropertyChanged("ItemsVisible");
              }
          }
  
          //Return the Items Collection / Set the Items Collection and Notify.
          public ObservableCollection&lt;Item&gt; ItemsCollection
          {
              get
              {
                  return _itemsCollection;
              }
              set
              {
                  _itemsCollection = value;
                  NotifyPropertyChanged("ItemsCollection");
              }
          }
  
          #endregion
  
          #region Constructor
  
          /// &lt;summary&gt;
          /// Items Constructor
          /// &lt;/summary&gt;
          public Items()
          {
              _itemsVisible = true;
              _itemsCollection = new ObservableCollection&lt;Item&gt;();
          }
  
          #endregion
  
          #region Methods
  
          /// &lt;summary&gt;
          /// Add Item to the ItemsCollection.
          /// &lt;/summary&gt;
          /// &lt;param name="item"&gt;Item Object&lt;/param&gt;
          public void AddItem(Item item)
          {
              //Bind item.Visible to this.ItemsVisible
              _itemsCollection.Add(item);
          }
  
          #endregion
      }
  }
  </code></pre>