【发布时间】: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