1

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

2 に答える 2

1

MVVMでのAvalonDockの使用に関する記事を書きました。

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 に答える