我是WPF的新手,以下内容已经困扰了我一段时间:
我的模型中有一个observableCollection of People对象,它被绑定到我的tabControl上。因此,每次添加一个新的People对象,都会创建一个带有People的新选项卡。标题作为标签页头。
每个People对象都有一个ObservableCollection of Friend对象。在标签我想有两个文本框的列表,一个为朋友。FirstName和另一个为Friend.LastName.
我的第一个要求工作正常,但第二个要求给我一个错误'ItemsSource已经在使用'
下面是目前为止的代码:<TabControl Name="ConversationTabs" Grid.Row="0"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource HeaderInfoTabControl}"
ContentTemplate="{StaticResource DialogueList}" />
<Window.Resources>
<DataTemplate x:Key="HeaderInfoTabControl">
<TextBlock Text="{Binding Title}" />
</DataTemplate>
<DataTemplate x:Key="DialogueList">
<ItemsControl ItemsSource="{Binding Path=DialogueCollectionVM}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Sent}" />
<TextBlock Text="{Binding Path=DateSent}" />
<TextBlock Text="{Binding Path=Message}" />
</StackPanel>
</ItemsControl>
</DataTemplate>
</Window.Resources>
我很感激你的帮助。 您不能同时向ItemsControl添加项并使用自动填充(通过ItemsSource)。如果StackPanel应该用于ItemsSource中的项目,你应该这样做:
<ItemsControl ItemsSource="{Binding Path=DialogueCollectionVM}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Sent}" />
<TextBlock Text="{Binding Path=DateSent}" />
<TextBlock Text="{Binding Path=Message}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>