C#勉強中で分からない点があるので質問です
テキストボックスをデータバインドしていてViewModel側はstringでSetPropertyで双方向としていて
テキストボックスでキー入力されてもコード上でstringの値を代入等で変えても画面に表示されている値と内部で保持している値が一致するようにしています

これをstringから独自のクラス、例えば電話番号クラスとかにするとテキストボックスにキー入力しても内部で保持している値に書き換わってしまうのですがこれって何に原因があるのでしょうか?

View側の処理
TelephoneTextBox.DataBindings.Add("Text", viewModel, nameof(ViewModel.Telephone));

ViewModel側の処理
public TelephoneValue Telephone
{
get => _telephone;
set => SetProperty(ref _telephone, value);
}

TelephoneValueは内部にstringを持っていてToString()でstringを返しています