当设计中已经存在一个或多个选项卡时,如何在WPF MVVM中动态添加选项卡控件

本文关键字:选项 WPF 控件 添加 动态 MVVM 存在 一个 | 更新日期: 2023-09-27 17:58:45

我在wpf的设计时添加了一个选项卡到选项卡控件。现在我想使用MVVM模式向选项卡控件添加额外的选项卡

下面是我的代码和我尝试过的内容。

    <TabControl ItemsSource="{Binding ContainerTabItems, Mode=TwoWay}" SelectedIndex="{Binding WizardModel.TabIndexValue, Mode=TwoWay}" x:Name="tabControl1">
        <TabControl.Items>    
        <TabItem Header="Page Configuration">
                <Button Content="Search" x:Name="btnSearch" Command="{Binding SearchClick}" /> 
                </Grid>
        </TabItem>
        </TabControl.Items>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <TabItem Header="{Binding Header}">
                    <TabItem.Content>
                        <ContentControl Content="{Binding UcContainer}"></ContentControl>
                    </TabItem.Content>
                </TabItem>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </TabControl>

当我点击btnSearch按钮时,我必须使用MVVM 将新的选项卡添加到选项卡控制中

void SearchClickCommand_Execute(object parameter)
{
    ContainerTabItems.Add(new ContainerTab()
             {
                   Header="Search",
                   UcContainer=new SearchGrid(newSearchContainer())
             });
}

当设计中已经存在一个或多个选项卡时,如何在WPF MVVM中动态添加选项卡控件

看看这个答案。您基本上创建了一个视图模型集合,每个选项卡一个,并将其绑定到TabControlItemSource属性。