如何使用DataContext用图像填充网格?

时间:2019-01-24 17:03:53

标签: c# wpf datacontext

我有一个从另一个窗口创建的新窗口。现有的窗口正在将一些数据传递到设置为DataContext的新窗口(将是图像库)。我想使用该DataContext创建图像库。我不确定应该使用哪个WPF对象,也不确定如何使用DataContext来填充图库。 (图片数量无法预测,并且可能会有所不同。)

这是我的Gallery.xaml.cs:

    public partial class Gallery : Window
    {
        public Gallery(List<BitmapSource> bitmaps)
        {
            InitializeComponent();
            DataContext = bitmaps;
        }
    }
}

我应该在哪里开始?

谢谢

1 个答案:

答案 0 :(得分:0)

这是基本的ItemsControl,您可以在其中将ItemsSource绑定到DataContext。然后每个项目都显示为Image,其中源绑定到一个项目(在您的情况下,它将是BitmapSource):

<ItemsControl ItemsSource="{Binding}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

WrapPanel会给它更多的“画廊”外观,而不是垂直地依次列出图像。