В моем AvalonDock DockingManager свойство ActiveContent не обновляет активную вкладку при загрузке нового документа. У меня есть свойство ActiveDocument, как это:
private DocumentViewModel m_activeDocument;
public DocumentViewModel ActiveDocument
{
get { return m_activeDocument; }
set
{
m_activeDocument = value;
OnPropertyChanged("ActiveDocument");
}
}
У меня есть метод OnPropertyChanged, как это:
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyChanged)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyChanged));
}
У меня есть наблюдаемая коллекция Документы, подобные этому:
private ObservableCollection<DocumentViewModel> m_documents = new ObservableCollection<DocumentViewModel>();
private ReadOnlyObservableCollection<DocumentViewModel> m_readonlyDocuments = null;
public ReadOnlyObservableCollection<DocumentViewModel> Documents
{
get
{
if (m_readonlyDocuments == null)
m_readonlyDocuments = new ReadOnlyObservableCollection<DocumentViewModel>(m_documents);
return m_readonlyDocuments;
}
}
и я вызываю док-менеджер следующим образом:
<xcad:DockingManager Grid.Row="2"
AllowMixedOrientation="True"
BorderBrush="Black"
BorderThickness="1"
Theme="{Binding ElementName=_themeCombo, Path=SelectedItem.Tag}"
DocumentsSource="{Binding Documents}"
ActiveContent="{Binding ActiveDocument, Mode=TwoWay, Converter={StaticResource ActiveDocumentConverter}}"
>
Когда я устанавливаю ActiveDocument для только что загруженных документов, вот так:
var ld = new DocumentViewModel { Title = fileName, PltModel = tmp };
m_documents.Add(ld);
ActiveDocument = ld;
документ не отображается спереди.