如何将导出的视图放置到另一个导出的视图的特定位置?

问题描述 投票:1回答:1

我正在尝试通过使用两个导出的视图来创建工具栏。第一个视图具有按钮A,D,E,第二个视图具有按钮B,C。我想通过将两个视图都放到新视图中来创建工具栏。问题是如何将第二个视图放在按钮A之后的第一个视图内。

所以,按钮的排列应该像

A,B,C,D,E(预期安排)

这是将其并排放置的工作代码,即

A,D,E,B,C

这是将放置两个视图的用户控件ToolbarView.xaml

<UserControl x:Class="Dummy.Views.ToolbarView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"                                          
         xmlns:prism="http://prismlibrary.com/"                         
         mc:Ignorable="d">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width ="0.5*"/>
        <ColumnDefinition Width ="0.5*"/>
    </Grid.ColumnDefinitions>
    <ContentControl  prism:RegionManager.RegionName="RegionForFirstView"/>
    <ContentControl Grid.Column="1" prism:RegionManager.RegionName="RegionForSecondView"/>
</Grid>

这是将获取导出的视图并构造工具栏的代码:

        ToolbarView toolbarView = new ToolbarView();
        var scopedRegionManager = _myRegionManager.CreateRegionManager();
        RegionManager.SetRegionManager(toolbarView, scopedRegionManager);
        navParams.Add("regionManager", scopedRegionManager);
        scopedRegionManager.RequestNavigate("RegionForFirstView", "ExportedView1", navParams);
        scopedRegionManager.RequestNavigate("RegionForSecondView", "ExportedView2", navParams);
        ToolbarContent = toolbarView;
c# wpf mvvm prism
1个回答
0
投票

内容控件的默认区域适配器无法执行此操作。

您有两个选择:

  1. 在项目控件中创建工具栏区域,并为每个按钮创建一个视图,并为其提供一个索引,该索引用于按正确的顺序放置按钮
  2. 从管理订单的定制服务中获取按钮,并使用包含项控件的视图在内容控件中显示它们

如果按钮是静态的,并且仅由配置决定,我会选择选项二,因为它很容易。如果按钮是动态变化的,我猜第一个选项更有意义。如果您不需要动态删除按钮,那是因为您不能取消对区域视图的导航。

© www.soinside.com 2019 - 2024. All rights reserved.