2014-02-11 2 views
7

При настройке AvalonDock с набором Anchorables, например:придет ли DockingManager со встроенным в способе обработки Anchorables

<a:LayoutRoot> 
    <a:LayoutPanel Orientation="Horizontal">  
     <a:LayoutAnchorablePane> 
      <a:LayoutAnchorable Title="A1"> 
       <!-- content --> 
      </a:LayoutAnchorable> 
      <a:LayoutAnchorable Title="A2"> 
       <!-- content --> 
      </a:LayoutAnchorable> 
    </a:LayoutAnchorablePane> 
<!-- ... --> 

Имеет ли DockingManager (или что-то еще в AvalonDock) поставляются со встроенным - в порядке управления Якорящими, которые закрыты? Они хранятся в коллекции где-нибудь, чтобы их можно было восстановить и показать снова?

Например, пользователь закрывает первую из кода выше (A1), что с ним происходит?
Как я могу отобразить его снова?

Каков типичный рабочий процесс для закрытия и восстановления якорей?

ответ

9

Как вы добавили тег xceed, я предполагаю, что вы используете Avalondock 2.0.

Например, пользователь закрывает первую из кода выше (A1), , что с ним происходит?

Вы привязываетесь, скрываетесь. Если вы решите назвать свой якорь (пример: <a:LayoutAnchorable Title="A1" x:Name="myAnchorable">), вы увидите в коде своего представления, что this.myAnchorable.IsHidden становится true.

Как я могу отобразить его снова?

Вызов .Show() против вашего скрепляемого: this.myAnchorable.Show();


Это, как говорится, Avalondock 2,0 полностью отличается от 1,0, потому что теперь позволяет использовать MVVM (особенно привязки) легко. Поэтому наилучшей практикой было бы не статически добавлять LayoutAnchorable в XAML, а вместо этого управлять коллекцией ViewModels (с привязкой к свойству AnchorablesSourceDockingManager). Затем легко показать/скрыть привязку, потому что вам просто нужно получить/установить свойство ViewModel, которое связано с свойством VisibilityLayoutAnchorableItem.

Вы можете посмотреть пример WPF, который предоставляет Avalondock. Это проект под названием AvalonDock.MVVMTestApp в their code source.

+0

Спасибо, это действительно очищает вещи для меня. Не удалось найти его в документах, и я не смотрел на источник, о котором вы говорили (смотрел страницу расширенного инструментария). Образец действительно помогает. (Я получу награду через 6 часов, поскольку пока не могу) – TimothyP

+0

В большинстве случаев класс привязки LailoutContent AvalonDock генерирует исключения NullReference каждый раз, когда я пытаюсь скрыть панель (на самом деле она пытается закрыть он вместо того, чтобы скрываться ..), и как только я скрою панель (установка видимая на false, я никогда не смогу ее снова увидеть). Вероятно, опубликуйте это в отдельном вопросе в ближайшее время. – TimothyP

+0

@TimothyP Вы когда-нибудь находили решение для нулевой ссылки на hide? Я тоже сталкиваюсь с этой проблемой. – clcto

 Смежные вопросы

  • Нет связанных вопросов^_^