2010-11-18 1 views
1

"Movie"オブジェクトのリストのDataTemplateを更新する際に問題があります。具体的には、ループリストに表示されているオブジェクト内にイメージがあります。中央のオブジェクトは大きな画像を持ち、遠くの画像は小さくなります。C#WPF - コンテナのリストがあり、各コンテナのテンプレートを更新してイメージのサイズが変更されるようにします

私はC#とWPFを使用しています。私Window.Resourcesで

<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クラスを変更することができる変数と呼ばれるサイズが含まれていますが、私は、変数を更新するたびにテンプレートが更新されません。

私は(App.xaml.csで)私のプログラムの初めに映画のリストを作成し、別のXAML(TicketScreen.xaml)ファイル内のリストを使用します。

<dw:LoopingListBox x:Name="movieScroller" Margin="81.683,65.013,66.149,43.342" 
          ItemsSource="{StaticResource Movies}" 
          ItemContainerStyle="{StaticResource MovieContainerStyle}" Background="Transparent" MouseUp="movieScroller_MouseUp"/> 

どのようにアップデートしますルーピングリスト内の各子の画像? DataTemplateがすべてのムービーに使用されていると感じているので、ムービーごとに異なるサイズを指定することはできません。このMVVMは、ヘルプ^^

+0

あなたのムービーオブジェクトはINotifyPropertyChangedを実装していますか? sizeプロパティが変更されたことをビューに通知する必要があります。 – Thelonias

答えて

0

ため

本当にありがとうございましたか?あなたは、データの収集を持っている必要があり

は、作品と呼ばれる作品のコレクション

作品

と呼ばれます。

Search映画のコレクションを投げ捨て、アイテム番号に対応するプロパティを変更します。

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

Theresはおそらくもっと良い方法ですが、これは私が過去に行った方法です。構文は恐らく完璧ではありません