Ce que je dois trouver est quand la valeur d'une zone de texte change ou la valeur de la liste déroulante change dans mon élément datatemplate, j'ai besoin d'être notifié dans mon ViewModel. cs.Comment obtenir TextBox dans DataTemplate dans un ListBox pour notifier le ViewModel sur le changement de valeur
Donc, fondamentalement, en tant qu'utilisateur édite une zone de texte dans la zone de liste, le viewmodel sera informé que les valeurs changent.
La raison en est que je dois passer par toutes mes entrées et mettre à jour quelque chose comme éléments à l'intérieur de changement DataTemplate la zone de liste.
Tout suggetion?
Je donne les résultats suivants dans mon XAML.
<ListBox x:Name="EntriesListBox"
ItemsSource="{Binding Path=Entries}"
Grid.Row="1">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ComboBox x:Name="EntriesPropertyName"
Width="215"
Margin="0,0,5,0"
SelectedItem="{Binding Path=Property, Mode=TwoWay}"
ItemsSource="{Binding Source={StaticResource DataContextProxy},Path=DataSource.EntityTypeProperties}" />
<TextBox x:Name="EntriesPropertyValue"
Width="215"
Margin="0,0,5,0"
Text="{Binding Path=Value, Mode=TwoWay, BindsDirectlyToSource=True}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Ce qui suit est dans ma VM (ViewModel.cs)
public ObservableCollection<Entry> Entries { get; set; }
Ce qui suit est mon objet métier (Entry.cs)
public class Entry
{
public PropertyItem Property { get; set; }
public string Value { get; set; }
}
Je travaille dans Silverlight 4; Il n'y a pas UpdateSourceTrigger = PropertyChanged – Gautam
Dans Silverlight, assurez-vous que le mode est réglé sur TwoWay! – rudigrobler
De plus, leur sont des comportements que vous pouvez ajouter que hacks ... il écoute l'événement clé vers le bas, puis forcer une mise à jour! – rudigrobler