我正在将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/