Сценарий: Библиотека VB6 вызывает метод в .NET-Assembly через COM и с этим открывает WPF-диалог, который содержится в другой .NET-Assembly, которая ранняя. Этот WPF-Dialog получил сложную реализацию master/detail над DependencyProperty типа ObservableCollection в этом диалоговом окне. DependencyProperty выглядит примерно так:DependencyProperty сохраняет свою ценность после уничтожения
public static readonly DependencyProperty ThatDependencyPropertyProperty =
DependencyProperty.Register("ThatDependencyProperty", typeof(ObservableCollection<SomeClass>)
, typeof(MainWindow), new UIPropertyMetadata(new ObservableCollection<SomeClass>()));
Проблема: После этого диалогового окна закрывается путем установления DialogResult и быть полностью переработан экземпляром, это DependecyProperty еще получил это значение и диалог по-прежнему отображает предыдущий мастер/детальная информация. Моим текущим обходным решением является просто позволить диалоку очистить коллекцию в нем, но мне это, конечно, не нравится ... что может сохранить эту коллекцию в живых через два экземпляра?
Спасибо, я попробую это. – naacal