MVVM + UserControl + Dependency Property

W porządku, to jest trochę związane z tym pytaniem:WPF Drukowanie wielu stron z jednego modelu widoku

Próbowałem postępować zgodnie z podanymi tam radami, ale teraz utknąłem.

Moja aplikacja używa MainView.xaml i odpowiedniego MainViewViewModel.cs, używam MVVM Light w tle.

Teraz - zgodnie z postem - wydaje się, że muszę wykonać następujące czynności:

Utwórz kontrolę użytkownikaWyeksponuj niektóre właściwości z formantu użytkownikaUpewnij się, że model widoku pokazuje te właściwości

Pomysł jest jasny, ale utknąłem podczas próby wzajemnego powiadomienia.

Moja kontrola użytkownika (UcTest.xaml) ujawnia właściwość zależności:

public string SpecialText
{
    get { return (string)GetValue(SpecialTextProperty); }
    set
    {
        SetValue(SpecialTextProperty, value);

    }
}

// Using a DependencyProperty as the backing store for SpecialText.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty SpecialTextProperty =
    DependencyProperty.Register("SpecialText", typeof(string), typeof(UcTest), new PropertyMetadata(new PropertyChangedCallback(SpecialTextChangedPropertyCallback)));

private static void SpecialTextChangedPropertyCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
    // Do something
    Debug.WriteLine("Ffgdgf");
}

W porządku, więc mam teraz kontrolę użytkownika, która ma pewne właściwości zależności. Jednak te właściwości są całkowicie oddzielone od moich właściwości ViewModel (są to te, które będą wyświetlane).

Więc zasadniczo mam dwie możliwości:

Jak teraz mogę powiedzieć mojemu ViewModelowi o UserControl, że niektóre właściwości uległy zmianie?Czy istnieje możliwość zapomnienia o właściwościach zależności i bezpośredniego dostępu do modelu widoku?

Dodatkowe informacje # 1: Wysłałem (prosty) przykład tego, co próbuję tutaj zrobić:Przykładowy projekt. Chciałbym zmienić wartość etykiety w UserControl1 (poprzez właściwość wiązania w ViewModel dla UserControl1) z mojego MainViewViewModel.

questionAnswers(2)

yourAnswerToTheQuestion