2012-02-17 98 views
2

我想动态地使用WPF添加AvalonDock选项卡,但我无法做到这一点。AvalonDock动态添加选项卡

您是否有线索码错?

的代码添加标签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代码

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

回答

1

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

好消息是 - 原作者重新编写库是MVVM友好:)

退房的链接:

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

新版本刚刚走进阿尔法所以距离生产就绪还有2个月左右的时间,但现在你可以玩了。

如果您不能等待,需要1.3 MVVM友好的版本在此期间,我建议在这篇文章中提出的解决方案:

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

史蒂夫