Проблема с инициализацией User Control в WPF с параметрами

Имеется очень простой User Control:

public partial class TestControl : UserControl {

    public static readonly DependencyProperty ArgumentXProperty = DependencyProperty.Register("ArgumentX", typeof(int), typeof(TestControl));
    public static readonly DependencyProperty ArgumentYProperty = DependencyProperty.Register("ArgumentY", typeof(int), typeof(TestControl));
    private int result;

    public TestControl() {
        InitializeComponent();
        DataContext = this;

        result = ArgumentX + ArgumentY;
    }

    public int ArgumentX {
        get => (int)GetValue(ArgumentXProperty);
        set => SetValue(ArgumentXProperty, value);
    }
    public int ArgumentY {
        get => (int)GetValue(ArgumentYProperty);
        set => SetValue(ArgumentYProperty, value);
    }
}

В конструкторе мне необходимо работать с данными, которые передаются таким образом (представим, что где-то в другом XAML мне необходимо добавить данный элемент):

<TestControl ArgumentX="5" ArgumentY="10"/>

Проблема заключается в том, что в этом самом конструкторе свойства не инициализируются с помощью тех аргументов, которые я передал в XAML. И если оставить код таким, какой есть сейчас, то "result" будет равен 0, а не 15. Но, после "отработки" конструктора значения в свойствах соответствуют тем, что я передал при инициализации.


Ответы (1 шт):

Автор решения: ToxyGen

Попробуйте следующим способом:

Loaded += (sender, args) =>
{
     result = ArgumentX + ArgumentY;
};
→ Ссылка