gpt4 book ai didi

silverlight - 有没有办法以编程方式更改 Silverlight 中的 Data/ItemTemplate?

转载 作者:行者123 更新时间:2023-12-04 06:55:13 27 4
gpt4 key购买 nike

我有一个列表框,它使用 ItemTemplate 来显示图像。我希望能够更改 ItemTemplate 中显示图像的大小。通过数据绑定(bind)我可以更改宽度,但我可以看到如何做到这一点的唯一方法是将属性(例如,ImageSize)添加到我绑定(bind)到的类中,然后将集合中的每个项目更改为具有新的 ImageSize。有没有办法访问该数据模板中项目的属性?

例如。

<navigation:Page.Resources>
<DataTemplate x:Key="ListBoxItemTemplate">
<Viewbox Height="100" Width="100">
<Image Source="{Binding Image}"/>
</Viewbox>
</DataTemplate>
</navigation:Page.Resources>
<Grid>
<ListBox ItemTemplate="{StaticResource ListBoxItemTemplate}" ItemSource="{Binding Collection}"/>
</Grid>

无论如何设置 View 框的宽度和高度而不将属性绑定(bind)到集合中的每个元素?

最佳答案

您可以对此使用元素绑定(bind)。尝试这样的事情:

<UserControl.Resources>        
<DataTemplate x:Key="ListBoxItemTemplate">
<Viewbox Height="{Binding Value, ElementName=slider1}"
Width="{Binding Value, ElementName=slider1}">
<Image Source="{Binding Image}"/>
</Viewbox>
</DataTemplate>
</UserControl.Resources>

<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="205*" />
<RowDefinition Height="95*" />
</Grid.RowDefinitions>
<ListBox ItemTemplate="{StaticResource ListBoxItemTemplate}"
ItemSource="{Binding Collection}"/>
<Slider x:Name="slider1" Value="100" Maximum="250" Grid.Row="1"/>
</Grid>

关于silverlight - 有没有办法以编程方式更改 Silverlight 中的 Data/ItemTemplate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com