Windows Phone 8 と XAML を理解するために、簡単なテスト プロジェクトを開始しました。ピボット ビューに、データ エントリをフラット リストに表示する longlistselector があります。ユーザーがリストから項目を削除したい場合、アプリケーションバーの「選択」ボタンをタップすると、リストの各行の先頭にチェックボックスが表示されます。これを行うには、「選択」アプリケーション バー ボタンのタップ イベントを処理し、longlistselectorのItemtemplate
andを必要なチェックボックスを含むデータ テンプレートに設定します。ListHeaderTemplate
私に。
ただし、私の問題は、チェックボックスを含む DataTemplate が表示されると、このスクリーンショットに示すように、チェックボックスが切り取られることです。
チェックボックスを含む DataTemplate の XAML は次のとおりです。
<DataTemplate x:Key="ExpensesEditListTemplate">
<Grid HorizontalAlignment="Stretch" Width="420">
<Grid.RowDefinitions>
<RowDefinition Height="48" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="48" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<CheckBox
IsChecked="False"
Grid.Column="0" VerticalAlignment="Top" Margin="-4,0,0,0" HorizontalContentAlignment="Left"
/>
<TextBlock
Text="{Binding Date, StringFormat=d}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Grid.Column="1" Grid.ColumnSpan="1"
VerticalAlignment="Top" Margin="0, 4, 0, 0"/>
<TextBlock
Text="{Binding ExpenseCategory}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Grid.Column="2" Grid.ColumnSpan="1"
VerticalAlignment="Top" Margin="0, 4, 0, 0"/>
<TextBlock
Text="{Binding Amount,StringFormat=\{0:N2\}}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Grid.Column="3" Grid.ColumnSpan="1"
VerticalAlignment="Top" Margin="0, 4, 0, 0"/>
<TextBlock
Text="{Binding PaymentCategory}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Grid.Column="4" Grid.ColumnSpan="1"
VerticalAlignment="Top" Margin="0, 4, 0, 0"/>
</Grid>
</DataTemplate>
行の高さと列を明示的に設定しようとしましたが、以下に示すように、「80」のような特に大きな値を使用する場合にのみ、チェックボックスを表示できます (ただし、画面スペースが大量に無駄になります)。
チェックボックスの幅と高さを明示的に小さい値 (20x20 など) に設定すると、チェックボックスがまったく表示されなくなります。明らかに、私は XAML に関する基本的な何かを見逃しているに違いありませんが、それを理解することはできません!