【问题标题】:Listbox not showing all items from local database on WP8列表框未显示 WP8 上本地数据库中的所有项目
【发布时间】:2013-11-19 14:09:55
【问题描述】:

我已将 DataTemplate 声明为

    <phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="FuelUpsListBoxTemplate">

        <Grid HorizontalAlignment="Left" Width="780" ShowGridLines="True" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="90" />
                <ColumnDefinition Width="170" />
                <ColumnDefinition Width="170" />
                <ColumnDefinition Width="170" />
            </Grid.ColumnDefinitions>

                <Border Name="b1" Background="GreenYellow">
                    <TextBlock Foreground="Aqua"
                                Text="{Binding FillUpDate}" 
                                FontSize="{StaticResource PhoneFontSizeSmall}" 
                                Grid.Column="0" Grid.Row="0"
                                VerticalAlignment="Top"  Margin="4, 4, 4, 4"/>
                </Border>

            <TextBlock 
                Text="{Binding Oddomer}" 
                FontSize="{StaticResource PhoneFontSizeLarge}" 
                Grid.Column="1" Grid.ColumnSpan="2" 
                VerticalAlignment="Top" Margin="-36, 12, 0, 0"/>

            <TextBlock 
                Text="{Binding Fuel}" 
                FontSize="{StaticResource PhoneFontSizeLarge}" 
                Grid.Column="2" Grid.ColumnSpan="2" 
                VerticalAlignment="Top" Margin="-36, 12, 0, 0"/>

            <TextBlock 
                Text="{Binding Price}" 
                FontSize="{StaticResource PhoneFontSizeLarge}" 
                Grid.Column="3" Grid.ColumnSpan="2" 
                VerticalAlignment="Top" Margin="-36, 12, 0, 0"/>

            <CheckBox 
                IsChecked="{Binding FullTank, Mode=TwoWay}" 
                Grid.Column="3" VerticalAlignment="Top"/>

        </Grid>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

并在 xaml 列表框中使用它:

                    <StackPanel Height="535" VerticalAlignment="Top" Grid.Row="0">
                        <ListBox x:Name="MainListBox" 
                        Margin="0,0,-12,0" 
                        ItemsSource="{Binding FillUpItems}"
                        ItemTemplate="{StaticResource FuelUpsListBoxTemplate}" 
                        Hold="MainListBox_Hold" />
                    </StackPanel></grid>.....

当我执行应用程序时,仅显示数据库中的 9 个项目,即使它包含 20-30 个项目...

这里还有从数据库中选择数据的 viewmodel 代码。

        var FillUpsinDB = from FillupItem todo in CarLogDB.FillUps
                            select todo;
        FillUpItems = new ObservableCollection<FillupItem>(FillUpsinDB);

当我检查“todo”变量时,调试器说它包含 db 中的所有项目。

【问题讨论】:

    标签: c# xaml windows-phone-8 listbox


    【解决方案1】:

    可能是因为您的 StackPanel 具有固定的高度 (535)。

    顺便说一句:为什么你的 ListBox 被包裹在 StackPanel 中?有必要吗?

    【讨论】:

    • 就是这样...当我设置 ...时问题得到了解决。而且 StackPanel 是必要的,因为我在同一页面上的控件很少。感谢您的回答...
    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多