Data binding 在运行时将控件添加到Stackpanel(SL 4.0)

Data binding 在运行时将控件添加到Stackpanel(SL 4.0),data-binding,silverlight-4.0,stackpanel,Data Binding,Silverlight 4.0,Stackpanel,我有一个包含stackpanel的用户控件 我正在试图找到一种方法将stackpanel的子对象绑定到一个属性,以便可以从另一个控件访问它们 有人知道怎么做吗?如果您正在使用数据绑定,请使用itemsControl启用绑定覆盖stackpanel。然后可以使用名为ItemsProperty的集合属性 <StackPanel> <ItemsControl x:Name="itemsControl" ItemsSource="{Binding ItemsProperty, M

我有一个包含stackpanel的用户控件

我正在试图找到一种方法将stackpanel的子对象绑定到一个属性,以便可以从另一个控件访问它们


有人知道怎么做吗?

如果您正在使用数据绑定,请使用itemsControl启用绑定覆盖stackpanel。然后可以使用名为ItemsProperty的集合属性

<StackPanel>
   <ItemsControl x:Name="itemsControl" ItemsSource="{Binding ItemsProperty, Mode=TwoWay}" >
          <ItemsControl.ItemTemplate>
              <DataTemplate>
                 <ContentPresenter Content="{Binding}" /> <!-- you could also use Border -->
              </DataTemplate>
         </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>


如果您在codebehind中,则不需要重写ItemsControl,只需调用stackpanel1.Children.Add(item);(如果在XAML中为x:Name=“stackpanel1”)


然后stackpanel 1.子级应该有元素。

我调用了stackpanel.childern.add(项),但添加的项不应用于控件。您使用的是绑定还是代码隐藏?我编辑了我的答案,希望能让它更清楚。如果您添加了一个代码片段,我可能会给您一个更精确的答案。usercontrolA.xaml:。usercontrolA.xaml.cs:usercontrolB.xaml.cs:((usercontrolA.Chart=new ListBox())中的公共FrameworkElement图表{set{ChartArea.children.add(value);}}};尝试在公共ObservableCollection图表的userControlA中创建一个属性(而不是您的图表属性)。然后在userControlB.xaml.cs中:userControlA.Charts.Add(new ListBox());。然后使用ItemsControl思想并绑定到Charts属性。谢谢!我已经按照您的gude进行了操作,并且添加了这些项目!不幸的是,尽管它们没有呈现(出现)在控件上