AvalonDock动态添加选项卡

时间:2012-02-17 08:06:52

标签: c# wpf avalondock

我正在尝试使用带有WPF的AvalonDock动态添加标签,但我无法做到。

你有线索问题吗?

动态添加标签的代码

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 个答案:

答案 0 :(得分:1)

我写了一篇关于在MVVM上使用AvalonDock的文章:

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

希望它有所帮助。

答案 1 :(得分:0)

您正在尝试使用AvalonDock 1.3版本中未提供的功能(绑定)。

好消息是 - 原作者正在重新编写图书馆以便MVVM友好:)

查看链接:

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

新版本刚进入Alpha,因此距离生产准备大约2个月,但你现在可以玩它。

如果您不能等到并且需要同时使用MVVM友好版本1.3,我建议在本文中介绍解决方案:

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

史蒂夫