Du verwaltest die Liste der Parametersätze im Viewmodel und bindest die Index-Eigenschaft der Combobox zur Auswahl des Parametersatzes an die neue 'ParamIndex'-Property des VM.
Im Setter der ParamIndex-Property rufst Du die PropertyChanged-Eventhandler aller Properties auf.
Mit der neuen Methode 'AddParam' kannst Du weitere Parametersätze anfügen.
Code:
public class UIElemData : INotifyPropertyChanged
{
private List<Params> _params = new List<Params>();
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
private int _paramIndex;
public int ParamIndex
{
get{ return _paramIndex;}
set{
_paramIndex = value;
OnPropertyChanged("Margin");
OnPropertyChanged("Width");
}
}
public void AddParam(Param param) { _params.Add(param); }
public Thickness Margin
{
get { return _params[_paramIndex].Margin; }
set
{
_params[_paramIndex].Margin = value;
OnPropertyChanged("Margin");
}
}
public int Width
{
get { return _params[_paramIndex].Width; }
set
{
_params[_paramIndex].Width = value;
OnPropertyChanged("Width");
}
}
// ...
}