WPF中的数据绑定

3

我是新手,对WPF不熟悉。以下内容困扰了我一段时间:

我的模型中有一个People对象的observableCollection,绑定到我的TabControl上。所以每当添加一个People对象时,就会创建一个以People.Title作为标签页标题的新标签页。

每个People对象都有一个Friend对象的observableCollection。在选项卡内,我想要一个包含两个文本框的列表,一个用于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>

非常感谢您的帮助。

1个回答

1

您不能同时向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>

谢谢,问题已解决!不过,我必须进行了一些微小的更改: <DataTemplate x:Key="DialogueList"> <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> </DataTemplate> - Hari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接