MVVM Too many properties
<p>I'm making a WPF project and trying to stick to the MVVM pattern. It has close to 20 <code>UserControl</code>s, each with about 10 controls I want to be able to change the properties of. For each one, I need to be able to change <code>Visibility</code> and <code>IsEnabled</code> (Framework element properties), and then change the content/text as well. That is at least 3 properties per control. Across all <code>UserControl</code>s, that makes for 600 properties...</p>

<p>I toyed with the idea of making a <code>ControlProperties</code> class, and having each control bind to the proper instance's member variable/property. (For example)</p>

<pre><code>//Code-behind
public class ControlProperties
{
    private bool m_isEnabled;
    public property IsEnabled
    {
        get { return m_isEnabled; }
        set { m_isEnabled = value; notifyPropertyChanged("IsEnabled"); }
    }

    ControlProperties() { m_isEnabled = false; }
}

public ControlProperties controlOne;


//XAML
&lt;Button IsEnabled={Binding controlOne.IsEnabled}/&gt;
</code></pre>

<p>Is there a way to combine the 2+ properties of each control into something more reusable/easier to implement, other than using the above class? (Each Control needs it's own "instance", they aren't sharing the same values) One downside of the above way is that each control has to individually bind the wanted properties. I would have to in the first place...but still.</p>

<p>Please ask questions if I left anything out or was unclear about something.</p>