1

我在一个 XAML 中几乎没有扩展器。还有另一个包含 StackPanel 的主 UI 应用程序。

本地控制.XAML

<UserControl>
     <Expander Name="ExpA">
         <StackPanel>
           <ComboBox />
           <TextBox />
         </StackPanel>
     </Expander>

     <Expander Name="ExpB">
         <StackPanel>
             <ComboBox />
             <TextBox />
             <Button />
         <StackPanel>
     </Expander>
</UserControl>

我在初始化期间在 LocalControl.xaml.cs 中为此 Expanders 和其他 UI 控件的绑定设置了 DataContext。每当某些事件触发时,我想将这些扩展器加载到 StackPanel 下的 maincontrol 中。

我有一个中间人类,它监听来自 LocalControl.xaml.cs 的加载和卸载事件。让我们称之为Manager.cs。

管理器.cs

public class Manager {

  public Manager(MainControl mc)
  {
     LocalControl lc = new LocalControl();
     lc.loadMe += loadControl;
  }

  private void loadControl(sender, MyEventArgs e)
  {
      foreach(var exp in e.Expanders){
          mc.SP.Add(exp);
      }
  }
}

我有主控件,我需要在我的应用程序中显示 UI 控件。

<UserControl>
    <StackPanel Name="SP">
        <!-- Add expanders here  -->
    </StackPanel>
</UserControl>

如何确保已在 MainControl StackPanel 中加载了此扩展器?

无论如何我可以在 LocalControl 中公开一些属性并按需在 MainControl 中使用该属性吗?

简而言之,我想在运行时将一个 XAML 文件下的小控件加载到另一个 XAML 文件中的 StackPanel 控件中。我不想在编译期间在 MainControl XAML 中添加这些控件。在我的应用程序中,我有许多需要添加运行时的扩展器。

我希望这个问题很清楚。

PS:请忽略所有语法问题。我的目的是给出一些想法,我想用这个做什么。

4

0 回答 0