AvalonDock动态添加选项卡

发布于 2025-01-07 01:38:04 字数 1129 浏览 6 评论 0 原文

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

I am trying to add tabs dynamically using AvalonDock with WPF, but I am not able to do it.

Do you have a clue whar is wrong?

The code for adding tabs dynamicaly

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 Code

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蘑菇王子 2025-01-14 01:38:04

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

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

希望有帮助。

I wrote an article on using AvalonDock with MVVM:

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

Hope it helps.

女中豪杰 2025-01-14 01:38:04

您正在尝试使用 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

史蒂夫

You are trying to use features (binding) that aren't available in release 1.3 of AvalonDock.

The good news is - the original author is re-writing the library to be MVVM-friendly :)

Check out the link:

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

The new version just went into Alpha so will be around 2 months away from being production-ready but you can play with it for now.

If you can't wait and need a MVVM friendly version of 1.3 in the meantime, I suggest the solution presented in this article:

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

Steve

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文