2009-04-15 10 views
2

J'ai un ListBox avec ItemTemplate s et certaines liaisons de données, y compris une image. Le ItemsSource est défini dans le codebehind. Tout fonctionne comme prévu jusqu'à ce que l'application tente de modifier la source de l'image en mettant à jour le membre de l'objet, qui est lié à la source de l'image. Qu'est-ce que je fais mal?Liaison de source d'image WPF

Voici le XAML:

<ListBox x:Name="myList" MouseDoubleClick="myList_MouseDoubleClick" ScrollViewer.VerticalScrollBarVisibility="Disabled"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel Orientation="Vertical" /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Border BorderBrush="DarkGray" BorderThickness="1"> 
       <StackPanel Orientation="Horizontal" Width="100"> 
        <Image Width="38" Height="38" Source="{Binding Path=icon}" /> 
        <StackPanel Width="100"> 
         <Label Content="{Binding Path=name}" /> 
         <Label Content="{Binding Path=state}" /> 
        </StackPanel> 
       </StackPanel> 
      </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Certaines parties du code-behind:

En Window_Initialized:

myList.ItemsSource = myLineList; 

En myList_MouseDoubleClick:

Line aLine = myList.SelectedItem as Line; 
if (aLine != null) { 
    aLine.icon = "idle.jpg"; 
} 

Répondre

1

Do votre classe "Line" implémente-t-elle INotifyPropertyChanged, ou utilise-t-elle des propriétés de dépendance? Il doit avoir un moyen de notifier la liaison que la valeur de la propriété "icon" a changé.

+0

merci beaucoup, c'était tout. venant de mfc et aussi de coder Adobe Flash j'ai pris cela pour acquis ... –