C#WPF-有一个容器列表,并希望更新每个容器的模板,以便其中的图像更改大小

C#WPF-有一个容器列表,并希望更新每个容器的模板,以便其中的图像更改大小,c#,wpf,xaml,C#,Wpf,Xaml,我在更新“电影”对象列表的数据模板时遇到问题。具体来说,我在这些对象中有一个图像,它显示在循环列表中。中间的对象将有一个较大的图像,而远处的图像将变小 我正在使用C#和WPF 在我的窗口中。参考资料: <DataTemplate DataType="{x:Type src:Movie}"> <StackPanel Orientation="Vertical" Margin="0" Background="Transparent" Width="Auto" Name="M

我在更新“电影”对象列表的数据模板时遇到问题。具体来说,我在这些对象中有一个图像,它显示在循环列表中。中间的对象将有一个较大的图像,而远处的图像将变小

我正在使用C#和WPF

在我的窗口中。参考资料:

<DataTemplate DataType="{x:Type src:Movie}">
    <StackPanel Orientation="Vertical" Margin="0" Background="Transparent" Width="Auto" Name="MovieDataStack">
        <Image Name="MovieImage" Margin="10,0,10,0" Source="{Binding ImagePath}" Width="{Binding Size}" Height="Auto"  VerticalAlignment="Center" HorizontalAlignment="Center" />
    </StackPanel>
</DataTemplate>

我的Movie类包含一个名为Size的变量,该变量可以更改,但每当我更新该变量时,模板都不会更新

我在程序开始时(在App.xaml.cs中)创建一个电影列表,并在另一个xaml(TicketScreen.xaml)文件中使用该列表:


如何更新循环列表中每个孩子的图像?我觉得DataTemplate用于所有电影,所以我不能为每部电影指定不同的大小

非常感谢您的帮助^^

这是MVVM吗

您应该有一个名为Movie的数据集合

一个叫做电影的电影集

搜索您的电影集并更改与项目编号对应的属性

int TempIndex;
TempIndex = Movies.Count / 2;
TempMovie = Movies[TempIndex];
TempMovie.Width = 155;
TempMovie.Height = 155;

也许有更好的方法,但我过去就是这样做的。语法可能也不完美

您的电影对象是否实现INotifyPropertyChanged?您必须通知视图size属性已更改。
int TempIndex;
TempIndex = Movies.Count / 2;
TempMovie = Movies[TempIndex];
TempMovie.Width = 155;
TempMovie.Height = 155;