簡體   English   中英

使用datatemplate將viewmodel的集合綁定到tabcontrol

[英]Binding collection of viewmodel to tabcontrol with datatemplate

我在將標簽控件綁定到類似於本文的視圖模型的集合時遇到了問題

<Window.Resources>
  <ViewModel:MainViewModel x:Key="MainViewModel" />
  <DataTemplate DataType="{x:Type local:Foo1}">
    <local:UserControl1 />
  </DataTemplate>
  <DataTemplate DataType="{x:Type local:Foo2}">
    <local:UserControl2 />
  </DataTemplate>
  <DataTemplate DataType="{x:Type local:Foo3}">
    <local:UserControl3 />
  </DataTemplate>
</Window.Resources>
<igDock:XamDockManager x:Name="dm">
  <igDock:XamDockManager.Panes>
    <igDock:SplitPane>
      <igDock:ContentPane>
        <ContentControl>
          <local:Foo />
        </ContentControl>
      </igDock:ContentPane>
    </igDock:SplitPane>
  </igDock:XamDockManager.Panes>
</igDock:XamDockManager>
<DockPanel>
  <igDock:XamDockManager x:Name="dockManager">
    <igDock:TabGroupPane DataContext="{StaticResource ResourceKey=MainViewModel}"
                         SelectedIndex="{Binding SelectedTabIndex}">
      <igExtensions:ContentPaneFactory.PaneFactory>
        <igExtensions:ContentPaneFactory ItemsSource="{Binding TabCollection}"
                                         HeaderPath="Title"
                                         ContentPath="." />
      </igExtensions:ContentPaneFactory.PaneFactory>
    </igDock:TabGroupPane>
  </igDock:XamDockManager>
</DockPanel>

但是正如上面的文章中提到的,我看到viewmodel被構造了兩次。 當我嘗試填充可觀察的選項卡集合時,首先是在MainViewModel中,而當我嘗試導航到Tabitem時,第一次。

如何避免這種情況?

我相信這個問題已經在您鏈接的Infragistics的論壇主題中得到解答。

如果您還有其他問題,我建議您在IG論壇中提問,因為您可以從IG專家那里得到答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM