AvalonDock динамически добавлять вкладки - PullRequest
1 голос
/ 17 февраля 2012

Я пытаюсь динамически добавлять вкладки с помощью AvalonDock с WPF, но я не могу этого сделать.

У вас есть ключ к разгадке?

Код для добавления вкладок динамически

public DockView()
{
    MyDocuments = new ObservableCollection<DocumentContent>();   
    InitializeComponent();

}


public void CreateView()
{
    string baseDocTitle = "MyDocument";
    int i = 1;
    string title = baseDocTitle + i.ToString();

    while (dockManager.Documents.Any(d => d.Title == title))
    {
        i++;
        title = baseDocTitle + i.ToString();
    }

    MyDocuments.Add(new DocumentContent() { Title = title });
}
public ObservableCollection<DocumentContent> MyDocuments { get; private set; }

Код XAML

<Menu>
    <MenuItem Header="Documents">
        <MenuItem Click="MenuItem_Click" Header="Create New" />
    </MenuItem>
</Menu>
<ad:DockingManager x:Name="dockManager" Grid.Row="2"
                   DocumentsSource="{Binding MyDocuments}">
    <ad:ResizingPanel>
        <ad:DocumentPane />
    </ad:ResizingPanel>
</ad:DockingManager>

Ответы [ 2 ]

1 голос
/ 04 мая 2012

Я написал статью об использовании AvalonDock с MVVM:

http://www.codeproject.com/Articles/239342/AvalonDock-and-MVVM

Надеюсь, это поможет.

0 голосов
/ 15 марта 2012

Вы пытаетесь использовать функции (привязку), которые недоступны в выпуске 1.3 AvalonDock.

Хорошая новость заключается в том, что оригинальный автор переписывает библиотеку, чтобы она была дружественной к MVVM:)

Проверьте ссылку:

http://avalondock.codeplex.com/wikipage?title=Version2Concept&referringTitle=Home

Новая версия только что вошла в Alpha, так что через 2 месяца она будет готова к производству, но вы можете поиграть с ней сейчас.

Если вы не можете ждать и нуждаетесь в дружественной к MVVM версии 1.3, я предлагаю решение, представленное в этой статье:

http://msdn.microsoft.com/en-us/magazine/ff798279.aspx

Steve

...