我有一个 BitmapSources 的 ObservableCollection,我想将它们全部显示在一个网格中并覆盖选定和未选定的样式。我一直在寻找很多不同的方法来做到这一点,但没有设法让我满意。我最近的尝试是这样的:
<ListBox ItemsSource={Binding Images}>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel ItemsHost="True">
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="3">
<Image Source={Binding}>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这确实显示图像,但 WrapPanel 总是只有一行......我不想水平滚动,所以我希望它自己进行换行或能够告诉它它应该只有 3每行的项目或类似的东西。如果没有 WrapPanel,图像每行占一行。另外,我真的不明白如何覆盖所选项目的样式等,因为 DataTemplate 的 DataType 现在是 BitmapSource,而不是 ListBoxItem ...
我还尝试了具有类似结果的 DataGrid(这似乎更合适)。
我该怎么做呢?