我在设计问题时遇到了一个小问题:
我的卡片工具应在我的视图上显示0-10张图片。
有时候只有三次,有时是六次,有时甚至是十次......
由于MVVM,我不想只将Controls.Add()
图像添加到网格/控件内容中。
对此有什么好处?一种方法是有十个位图变量,但还有另一种更好的方法吗?
修改:\
我尝试过这样:
<ItemsControl ItemsSource="{Binding CardImages}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"></WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Stretch="Uniform" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
但它不能正常工作。
我有六张照片,但剩下的照片都不可见(出于sigth)。我想要显示所有的图片,所以3必须是高度小约50%,其他三个atm不可见的图片应显示在所示的三张图片下。希望这很清楚。
如何解决?我尝试过ScrollViewers,ViewBoxes和一些不同类型的模板/面板,但没有成功。 :(
答案 0 :(得分:2)
我会将ItemsControl绑定到包含图像源/位置的公共可观察集合属性,但是您在视图模型上引用它们,然后将项目模板化以显示图像。
<ItemsControl Binding="{Binding MyPublicProperty}">
<ItemsControl.ItemTemplate>
<Image Source="{Binding Source={StaticResource MyImage}, Path=Source}"/>
</ItemsControl.ItemTemplate>
</ItemsControl>
请参阅this SO question以了解图像的绑定。