1

我正在尝试使用带有 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>
4

2 回答 2

1

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

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

希望能帮助到你。

于 2012-05-04T02:59:29.790 回答
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

史蒂夫

于 2012-03-15T17:50:51.287 回答