如何忽略UserControl上的父容器?

时间:2014-01-14 18:19:07

标签: c# wpf xaml binding

我有一个UserControl,我们称之为“MyUserControl”,可以在整个项目中重复使用,如下所示:

<WrapPanel> 
<TextBlock Text="{Binding}" />
<ComboBox ItemsSource="{Binding}" />
</WrapPanel>

现在我正在使用codeproject中的一个名为“TwoColumnGrid”的自定义控件。 完整Article。 简短版http://www.codeproject.com/KB/WPF/TwoColumnGrid/child-ordering.png 而我正在这样做:

<Custom:TwoColumnGrid>
<MyUserControl />
<TextBlock />
<TextBox />
</Custom:TwoColumnGrid>

实际上,TwoColumnGrid不起作用。我想让它认为MyUserControl是它包含的两个元素。就这样:

<Custom:TwoColumnGrid>
<TextBlock Text="{Binding}" />
<ComboBox ItemsSource="{Binding}" />
<TextBlock />
<TextBox />
</Custom:TwoColumnGrid>

我尝试过使用visualtree,以编程方式添加它并纯粹以编程方式创建对象。 管理通过删除和添加到子项来使其工作但绑定不起作用,它是由XAML执行的。

认为SO的优秀人才可以提供帮助,任何想法?

编辑: 我在TwoColumnGrid上多次使用MyUserControl。像这样:

<Custom:TwoColumnGrid>
    <MyUserControl />
    <TextBlock />
    <TextBox />
    <MyUserControl />
 </Custom:TwoColumnGrid>

1 个答案:

答案 0 :(得分:0)

我创建了两个小控件(一个用于TextBlock,另一个用于Combobox)并使用它们来创建MyUserControl。这意味着你可以使用MyUserControl作为最大的安宁,你可以在TwoColumnGrid中使用2个较小的部分,而无需重复代码/ XAML。