为什么我使用 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}}">
我是 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}}">