我有AccountSid - ####
ApplicationSid - ####
Caller - client:Anonymous
CallStatus - ringing
Called -
To -
CallSid - ####
From - client:Anonymous
Direction - inbound
ApiVersion - 2010-04-01
,其中包含UserControl
TabControl将有1到n TabControl
,即:第一个TabItem将始终存在,其内容对于我的UserControl的每个实例都是相同的,但其余的TabItems应该来自我的代码-behind因为我必须首先依赖于某些属性来构造它们。
我的第一次尝试包括
TabItems
其中<UserControl x:Class="MyNS.MyControl"
xmlns:local="MyNS"
and the whole rest of the declarations>
<Grid>
<TabControl>
<TabControl.ItemsSource>
<Binding Path="Tabs" RelativeSource="{RelativeSource AncestorType=local:MyControl}" />
</TabControl.ItemsSource>
<TabControl/>
</Grid>
</UserControl>
在代码隐藏中声明为Tabs
。它不是依赖或附属属性。这只是一个简单的领域
这很好用。无论我在代码隐藏中构建什么,都会显示出来。
但是,当我想手动定义第一个TabItem时,我会遇到问题:
public IList Tabs { get { return ... } }
始终显示第一个(静态)项目,但似乎绑定无法再解析<UserControl x:Class="MyNS.MyControl"
xmlns:local="MyNS"
and the whole rest of the declarations>
<Grid>
<TabControl>
<TabControl.ItemsSource>
<CompositeCollection>
<CollectionContainer>
<CollectionContainer.Collection>
<x:Array Type="TabItem">
<TabItem Header="Test"/>
</x:Array>
</CollectionContainer.Collection>
</CollectionContainer>
<CollectionContainer>
<CollectionContainer.Collection>
<Binding Path="Tabs"
RelativeSource="{RelativeSource AncestorType={x:Type local:MyControl}}"/>
</CollectionContainer.Collection>
</CollectionContainer>
</CompositeCollection>
</TabControl.ItemsSource>
<TabControl/>
</Grid>
</UserControl>
的getter。
如何手动定义第一个标签项(在XAML中)并从代码隐藏中获取其余标签项?
答案 0 :(得分:0)
<UserControl x:Class="MyNS.MyControl"
xmlns:local="MyNS"
x:Name="MyControl">
<!-- ... --->
<CollectionContainer Collection="{Binding Tabs, Source={x:Reference MyControl}}"/>