我正在尝试使用带有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>
答案 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
史蒂夫