Я написал приложение с несколькими представлениями. Модели представления назначаются «smartcontentcontrol», который является производным от contentcontrol и переопределяет метаданные contentproperty для обработки измененного события для этого свойства зависимости. Я добавил некоторые эффекты к этому обратному вызову для визуалов (renderbitmap и т. Д.).
Теперь я расширил свою модель представления так, чтобы при назначении объекта в свойство содержимого smartcontentcotrol моя модель представления получала ссылку на объект smartcontentcontrol. Я реализовал это для того, чтобы моя модель представления могла закрывать себя.
Итак - в xaml у меня есть
<DataTemplate DataType="{x:Type viewmodel:MainViewModel}">
<view:MainView/>
</DataTemplate>
<SmartContentControl Content="{Binding MainView}"/>
в C # я назначаю некоторый класс viewmodel этому свойству
MainView = new MainViewModel();
в этот момент все идет хорошо, и вид отображается с правой таблицей данных. Не только это, но и мой smartcontentcontrol триггеры - я получаю классную анимацию скольжения / затухания - именно то, что я ожидал - например - последний в коде, называющем это
MainView = null;
смещает "старый" вид с пустотами. Все идет нормально! :)
Теперь сложная часть, которую я не могу понять -
Как только я напрямую назначу на
smartcontentcontrol.content = null
Все ломается, и назначение MainView больше не меняет представление и не вызывает измененное событие. Кажется, что привязка данных исчезла.
Почему это так? Как мне обойти эту проблему?