使用WPF进行数据绑定



我是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>

相关内容

  • 没有找到相关文章

最新更新