我正在将Prism与MEF结合使用,我想将标签项动态添加到标签控件中而不违反
Prism -MVVM-MEF规则。
有人可以通过简单的步骤/示例向我展示如何执行此操作

最佳答案

TabControl可以像其他许多控件一样绑定(bind)到集合。这是我在聊天消息传递程序中拥有的tabcontrol的示例。

<TabControl ItemsSource="{Binding Path=Rooms, Mode=OneWay}" SelectedItem="{Binding Path=SelectedRoom, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
      <TabControl.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Path=RoomName}" x:Name="Header" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=DataContext}"/>
            </DataTemplate>
      </TabControl.ItemTemplate>
      <TabControl.ContentTemplate>
            <DataTemplate>

                 //in here is where you put controls for what you want the tabs to look like.

            </DataTemplate>
      </TabControl.ContentTemplate>
 </TabControl>

因此,在此示例中,我有一个名为“Rooms”的自定义数据类型“ChatRoom”的集合,该数据类型具有诸如RoomName之类的属性。每当用户创建新房间时,都会将其添加到“房间”集合中,并创建一个新的tabitem。所以在我的viewModel中:
private ObservableCollection<ChatRoom> _Rooms;

public MainWindowViewModel()
{
     this._Rooms = new ObservableCollection<ChatRoom>();
}

public ObservableCollection<ChatRoom> Rooms
{
   get { return this._Rooms; }
}

关于wpf - 如何以编程方式将选项卡项添加到 Prism 中的选项卡控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14357503/

10-17 01:55