Хорошо, извините за мой английский заранее, вот что мне нужно:
Я получил ListView
в XAML (WPF), где есть предметы и что мне нужночто элементы имеют ширину, равную ширине ListView
.
До сих пор я делал это:
<ListView Name="lvFiles" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid Width="{Binding ElementName="lvFiles", Path=ActualWidth}">
<!-- All the controls inside I need to present an item -->
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Но, как оказалось, элементы ListView
становятсяобрезается справа, когда появляется вертикальная полоса прокрутки.И он появляется, когда общая высота всех элементов превышает ListView.ActualHeight
, поэтому мне нужно, чтобы привязки пользователей были более сложными и, следовательно, более сложными.
Кроме того, мои предметы, пока я тратил часы, чтобы решить эту проблему,мои вещи иногда были вырезаны справа без очевидной причины.
Итак, я пришел к такому выводу:
<ListView Name="lvFiles" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.View>
<GridView>
<GridViewColumn Width="{Binding ElementName=lvFiles, Path=ActualWidth}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Decorator Width="{Binding RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType=ListViewItem},
Path=ActualWidth}">
<Grid Margin="0,0,18,0">
<!-- All the controls inside... -->
</Grid>
</Decorator>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Это решило проблему отсечения, а также это решило проблему с одним столбцом ListViewItem
авто-размер.Но сейчас это кажется не самым простым способом.Есть ли такие?