私は自分のフォームにListViewを持っており、ListView.HeaderTemplateを設定しています。まったく同じXAMLを使用しても、ListView.HeaderTemplateとListView.ItemTemplate(UWP XAML)の表示が異なるのはなぜですか?
しかし、正確なグリッド定義をListView.ItemTemplateにコピーすると、同じレイアウトがレイアウトされません。
それぞれが現れている場合、あなたが区別できるように、私は2つのアイテムの列の値の色を変更した2つの列の値の色(シアン、グリーン)
を変えました。 2つの<x:String>
値が定義されているため、データはVisual Studioのプレビューレイアウトに表示されますが、実行時には2つのレイアウトが同じに見えても異なって見えます。
ItemTemplateにテキストブロック上に定義されませんGrid.Row
XAMLでわかります1つの違いはItemTemplateにテキストブロックごとにのみそのGrid.Columnセット(無Grid.Rowセット)を持っているということです。それはテストだったし、どちらかと同じように見える。
文字通りのコピー/貼り付けたHeaderTemplate
をItemTemplateにするために、私は、文字通りItemTemplateににHeaderTemplateをコピーして言及しただけで変更を行いました。
なぜ同じレイアウトではないのですか?
<ListView.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Margin="7 0 0 0" Grid.Row="0" Grid.Column="0" Foreground="#ff0000" Text="Date" />
<TextBlock Margin="0 0 15 0" Grid.Row="0" Grid.Column="1" Foreground="#ff0000" Text="Entry Count" />
</Grid>
</DataTemplate>
</ListView.HeaderTemplate>
EDIT
私は次のように見えるようにItemTemplateにColumnDefinitionsを変更する場合:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
を次に、それは私が期待するものに近づくんが、私はまだいませんよなぜ私はこれをどうやってやらなければならないのか。デフォルトでは
方法1は完全に機能しました。 ItemContainerStyleについてはどこで知りましたか? もし私があなたが私を見せなかったなら、それは決して見つけられませんでした。どうもありがとう。 XAML/UWPには、文書化されていない(またはほとんど文書化されていない)ようです。ところで、方法2は問題を解決しません。私はそれを試してみました。 – raddevus
@raddevus ['ItemContainerStyle'](https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.itemscontrol#Windows_UI_Xaml_Controls_ItemsControl_ItemContainerStyle)は、' ItemsControl'の一部です。また、私の免責事項を削除することは安全だと思います。 –