我在一个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:请忽略所有语法问题。我的目的是让我知道我想用这个做什么。