Witam,
Zeby nie pisać ściany tekstu, opisze problem pokrótce. Oto co chce zrobić:
Głowne okno aplikacji desktopowej składa się miedzy innymi z kilku dośc specyficznych kontrolek. Kontrolki przyjmuja pewne dane, jakoś je tam obrabiają/walidują/formatuja i prezentują w określony sposób. Wymyśliłem, że całą logike kontrolek zamkne w obiektach userControl, na zewnątrz wystawie pewne DependencyProperties, w klasie głównego okna bede tworzył viewModele per kontrolka i własności tych modeli bede bindował z dependency properties kontrolek. Jednak tutaj zaczęły sie schody, bo nie działa to tak, jak myślałem, że bedzie dzialać ;)
Zrobiłem przykładową kontrolke, przykładowy viewModel z wykorzystaniem INotifyPropertyChanged, binduje jakis tam przykładowy property. Po stworzeniu obiektu w konstruktorze głównego okna dane są odświeżane:
public MainWindow()
{
InitializeComponent();
FirstViewModel = new SimpleControlViewModel()
{
TextToBind = "SampleText"
};
this.DataContext = this;
}
jednak kiedy zmienie property viewModelu z innego miejsca, np kliknieciem buttona:
this.FirstViewModel.TextToBind = "xxx";
to zmiana ta nie jest odwzorowana na gui. Dodam, że property które zmieniam (TextToBind
) odpala odpowiedni event. Dodałem przykładowy projekt w załączniku, zeby bardziej zobrazować problem. Jakiś czas temu pomogli mi @Ktos i @DibbyDum, może i tym razem rzucicie na to okiem?:D