C# 在垂直选项卡控件中对项目进行分组 现状

C# 在垂直选项卡控件中对项目进行分组 现状,c#,wpf,tabcontrol,C#,Wpf,Tabcontrol,这是一个样式化的TabControl,我正在使用它作为程序的侧栏菜单。右侧的灰色区域是选项卡项的内容所在位置。我添加了一些示例文本作为示例 ... 我的目标 但是,我想将一些项目分组到另一个框中,以便控件如下所示: 我怎样才能实现TabControl的这种外观呢?我会完全放弃TabControl的想法,只使用ContentPresenter显示数据 所以你的数据模型应该 public ObservableCollection<IItemBase> Items { get; s

这是一个样式化的
TabControl
,我正在使用它作为程序的侧栏菜单。右侧的灰色区域是
选项卡项
的内容所在位置。我添加了一些示例文本作为示例


...
我的目标 但是,我想将一些项目分组到另一个框中,以便控件如下所示:


我怎样才能实现TabControl的这种外观呢?

我会完全放弃TabControl的想法,只使用ContentPresenter显示数据

所以你的数据模型应该

public ObservableCollection<IItemBase> Items { get; set; }
public ObservableCollection<IItemBase> SpecialItems { get; set; }
public IItemBase SelectedItem { get; set; }
publicobservableCollection项{get;set;}
公共可观测集合特殊文件{get;set;}
公共IItemBase SelectedItem{get;set;}
你的用户界面应该是这样的

<DockPanel>
    <StackPanel Style="{staticResource NavBarStyle}" DockPanel.Dock="Left">
        <ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" />
        <ListBox ItemsSource="{Binding SpecialItems}" SelectedItem="{Binding SelectedItem}" />
    </StackPanel>

    <ContentPresenter Content="{Binding SelectedItem}" />
</DockPanel>


您可能需要修改
SelectedItem
的具体实现,使其正确绑定到两个列表框,但如果这会给您带来任何问题,那么工作应该不会那么困难。

我会完全放弃TabControl的想法,只使用ContentPresenter显示数据

所以你的数据模型应该

public ObservableCollection<IItemBase> Items { get; set; }
public ObservableCollection<IItemBase> SpecialItems { get; set; }
public IItemBase SelectedItem { get; set; }
publicobservableCollection项{get;set;}
公共可观测集合特殊文件{get;set;}
公共IItemBase SelectedItem{get;set;}
你的用户界面应该是这样的

<DockPanel>
    <StackPanel Style="{staticResource NavBarStyle}" DockPanel.Dock="Left">
        <ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" />
        <ListBox ItemsSource="{Binding SpecialItems}" SelectedItem="{Binding SelectedItem}" />
    </StackPanel>

    <ContentPresenter Content="{Binding SelectedItem}" />
</DockPanel>


您可能需要修改
SelectedItem
的具体实现,使其正确绑定到两个列表框,但如果这会给您带来任何问题,那么工作应该不会那么困难。

我会完全放弃TabControl的想法,只使用ContentPresenter显示数据

所以你的数据模型应该

public ObservableCollection<IItemBase> Items { get; set; }
public ObservableCollection<IItemBase> SpecialItems { get; set; }
public IItemBase SelectedItem { get; set; }
publicobservableCollection项{get;set;}
公共可观测集合特殊文件{get;set;}
公共IItemBase SelectedItem{get;set;}
你的用户界面应该是这样的

<DockPanel>
    <StackPanel Style="{staticResource NavBarStyle}" DockPanel.Dock="Left">
        <ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" />
        <ListBox ItemsSource="{Binding SpecialItems}" SelectedItem="{Binding SelectedItem}" />
    </StackPanel>

    <ContentPresenter Content="{Binding SelectedItem}" />
</DockPanel>


您可能需要修改
SelectedItem
的具体实现,使其正确绑定到两个列表框,但如果这会给您带来任何问题,那么工作应该不会那么困难。

我会完全放弃TabControl的想法,只使用ContentPresenter显示数据

所以你的数据模型应该

public ObservableCollection<IItemBase> Items { get; set; }
public ObservableCollection<IItemBase> SpecialItems { get; set; }
public IItemBase SelectedItem { get; set; }
publicobservableCollection项{get;set;}
公共可观测集合特殊文件{get;set;}
公共IItemBase SelectedItem{get;set;}
你的用户界面应该是这样的

<DockPanel>
    <StackPanel Style="{staticResource NavBarStyle}" DockPanel.Dock="Left">
        <ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" />
        <ListBox ItemsSource="{Binding SpecialItems}" SelectedItem="{Binding SelectedItem}" />
    </StackPanel>

    <ContentPresenter Content="{Binding SelectedItem}" />
</DockPanel>



您可能需要修改
SelectedItem
的具体实现,使其正确绑定到两个列表框,但是,如果这会给您带来任何问题,那么开始工作应该不会那么困难。

我的建议是,您最好使用列表中的列表,这样您就可以更轻松地实现这一点。@DotNetWeblineindia请您更详细地解释您的解决方案好吗?如何将多个列表推入TabControl?不。您不需要为此使用TabControl。实际上,在侧栏中获取主listview,在主listview项目模板中获取另一个listview。@DotNetWeblineindia如何实现内容的显示?如果我的问题不清楚的话:屏幕截图右侧的灰色区域就是实际内容所在的位置。显示的内容取决于所选的选项卡项。我用更详细的屏幕截图更新了我的问题。在我的实际程序中,我使用的不是简单的灰色矩形和文本,而是更复杂的
FrameworkElement
s。我的建议是,最好将列表与in-list一起使用,这样可以更轻松地实现这一点。@DotNetWeblineindia请您详细解释一下您的解决方案好吗?如何将多个列表推入TabControl?不。您不需要为此使用TabControl。实际上,在侧栏中获取主listview,在主listview项目模板中获取另一个listview。@DotNetWeblineindia如何实现内容的显示?如果我的问题不清楚的话:屏幕截图右侧的灰色区域就是实际内容所在的位置。显示的内容取决于所选的选项卡项。我用更详细的屏幕截图更新了我的问题。在我的实际程序中,我使用的不是简单的灰色矩形和文本,而是更复杂的
FrameworkElement
s。我的建议是,最好将列表与in-list一起使用,这样可以更轻松地实现这一点。@DotNetWeblineindia请您详细解释一下您的解决方案好吗?如何将多个列表推入TabControl?不。您不需要为此使用TabControl。实际上,在侧栏中获取主listview,在主listview项目模板中获取另一个listview。@DotNetWeblineindia如何实现内容的显示?如果我的问题不清楚的话:屏幕截图右侧的灰色区域就是实际内容所在的位置。显示的内容取决于所选的选项卡项。我用更详细的屏幕截图更新了我的问题。在我的实际程序中,我使用的不是简单的灰色矩形和文本,而是更复杂的
FrameworkElement
s。我的建议是,最好将列表与in-list一起使用,这样可以更轻松地实现这一点。@DotNetWeblineindia请您详细解释一下您的解决方案好吗?如何将多个列表推入TabControl?不。您不需要为此使用TabControl。实际上,在侧栏中获取主listview,在主listview项目模板中获取另一个listview。@DotNetWeblineindia如何实现内容的显示?如果不清楚的话