현재 UserControlA에서는 stopSecondsProperty로 선언하셨고, UserControlB에서는 stopProperty로 선언하셨기 때문에, UserControlB의 경우 바인딩 대상 속성을 찾지 못하는 문제가 발생한 것입니다.
(재미있는 점은, stopSecondsProperty처럼 CamelCase로 작성한 이름에서는 오류가 발생하지 않는다는 것입니다.)
아래와 같이 속성 이름을 맞춰주시면 잘 동작하시는 것을 확인할 수 있습니다.
public class UserControlA : UserControl
{
public static readonly StyledProperty<int> StopSecondsProperty = AvaloniaProperty.Register<UserControlA, int>(nameof(StopSeconds), 0, defaultBindingMode: BindingMode.TwoWay);
public int StopSeconds
{
get => GetValue(StopSecondsProperty);
set => SetValue(StopSecondsProperty, value);
}
}
public class UserControlB : UserControl
{
public static readonly StyledProperty<int> StopSecondProperty = AvaloniaProperty.Register<UserControlB, int>(nameof(StopSecond), 0, defaultBindingMode: BindingMode.TwoWay);
public int StopSecond
{
get => GetValue(StopSecondProperty);
set => SetValue(StopSecondProperty, value);
}
}