ListBox中的项目不会自动更新

时间:2014-07-25 18:02:06

标签: c# windows-8 windows-store-apps

问题是当新项目进入其集合时,用户界面(ListBox)不会更新。我有一个ListBox,定义如下:

<ListBox x:Name="ui_UserList" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionChanged="ui_UserList_SelectionChanged" ItemsSource="{Binding chatUsers}" Grid.ColumnSpan="3" Margin="10,179,10,81" DataContext="{Binding}">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListBox.ItemContainerStyle>
    <ListBox.ItemTemplate>
       <DataTemplate>
            <Grid Background="Transparent">
                <TextBlock Text="{Binding nickname}" HorizontalAlignment="Center" TextAlignment="Center" FontSize="42" Grid.Row="0" Grid.Column="0" Foreground="Black" VerticalAlignment="Top" TextWrapping="Wrap"/>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

itemsource ChatUsersObservableCollection。这最初设计为Windows Phone 8的应用程序,其中ListBox等效项按预期工作(它在项目进入集合时更新)。

我错过了ListBox的某些内容吗?

1 个答案:

答案 0 :(得分:0)

好吧,看起来我需要显式设置DataContext,即使它从未抱怨过它。 唯一的变化是:

<ListBox x:Name="ui_UserList" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionChanged="ui_UserList_SelectionChanged" ItemsSource="{Binding chatUsers}" Grid.ColumnSpan="3" Margin="10,179,10,81" DataContext="{StaticResource ChatUsersViewModel}">
.....
</ListBox>