Ответ лежит в классе «DependencyProperty». Я изменил PropertySetter на это:
public class PropertySetter : UserControl
{
public string Value
{
get { return (string)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(string), typeof(PropertySetter), new UIPropertyMetadata("0"));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(PropertySetter), new UIPropertyMetadata("def"));
public string Adress
{
get { return (string)GetValue(AdressProperty); }
set { SetValue(AdressProperty, value); }
}
public static readonly DependencyProperty AdressProperty =
DependencyProperty.Register("Adress", typeof(string), typeof(PropertySetter), new UIPropertyMetadata(""));
public PropertySetter():base()
{
}
}
И вуаля, все это правильно связывается, и теперь я сделал слой между загруженным XAML во время выполнения и логикой приложения.