将控件添加到主UI容器

时间:2012-09-04 19:33:37

标签: c# wpf wpf-controls

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

LocalControl.XAML

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

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

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

我有中间人类,它从LocalControl.xaml.cs中侦听加载和卸载事件。让我们称之为Manager.cs。

Manager.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中添加这些控件。在我的应用程序中,我有许多需要添加运行时的扩展器。

我希望问题很清楚。

P.S:请忽略所有语法问题。我的目的是让我知道我想用这个做什么。

0 个答案:

没有答案