Для значения по умолчанию используйте DependencyProperty и передайте FrameworkPropertyMetadata объект, содержащий значение по умолчанию, например,
public static readonly DependencyProperty ProductNameProperty =
DependencyProperty.Register(
"ProductName",
typeof(string),
typeof(ProductTextBox),
new FrameworkPropertyMetadata(null, // Default Value
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
new PropertyChangedCallback(ChangeProductName)) );
Если значение по умолчанию является переменной для каждого экземпляра и отличается, то возможно сочетание
SetValue(ProductNameProperty, value_required);
PropertyChanged(this, new PropertyChangedEventArgs("ProductName"));
Возможно, как в конструкторе, так и отправить PropertyChanged в загруженном событии, если оно не работает в конструкторе. Я на самом деле не пробовал это ...