为什么我使用 DataContext 的 Listbox 数据绑定不起作用?

why my Listbox data binding using DataContext is not working?

我是 WPF 和数据绑定的新手, 这里我有一个列表框,它工作得很好:

    <ListBox 
        x:Name="listBox" ItemsSource="{Binding Path=AllFriends}">

        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}" />
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

现在我想尝试 DataContext,所以我使用:

<UserControl.Resources>
    <CollectionViewSource
      x:Key="FriendsGroups" 
      Source="{Binding Path=AllFriends}"
      >
    </CollectionViewSource>
</UserControl.Resources>

   <ListBox 
        x:Name="listBox" 
        DataContext="{StaticResource FriendsGroups}">

        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}" />
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

但是这个不行。 如果你能告诉我为什么,我将不胜感激?

即使您使用 CollectionViewSource,您仍然必须设置 ItemsSource 属性,而不是 DataContext:

<ListBox ItemsSource="{Binding Source={StaticResource FriendsGroups}}">