Tenir compte de ce conteneur:Comment lier une propriété dans itemtemplate à une propriété dans itemsource?
public class ItemInfo : DependencyObject
{
public string Name { get; set; }
public ObservableCollection<SomeDataItem> DataValues { get; set; }
...
Dependency object registration and event handling
...
}
public class MyItemSource : ObservableCollection<ItemInfo>
{
...
}
Maintenant, je souhaite afficher ces données dans un listview où le contrôle qui affiche l'élément est personnalisé. Pour cela, je définirais MyItemSource à ItemSource de listview et définirais un ItemTemplate. Cependant, il semble que je n'ai pas accès à ItemInfo dans le ItemTemplate. Ceci est mon XAML:
<Grid>
<ListBox ItemsSource="{StaticResource MyStaticDataSource}"
Grid.IsSharedSizeScope="True">
<ListBox.ItemTemplate>
<DataTemplate>
<local:ItemInfoUserControl x:Name="itemInfoUserControl"
Name = "{Binding Name}" <--- this doesn't work
Data = "{Binding DataValues}" <--- this doesn't work
Width="300" Height="200"
Grid.Row="1">
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
Au lieu de se lier à itemInfo de ItemSource, il se lie aux propriétés ItemInfoUserControl, ce qui est pas ce que je veux qu'il fasse. Existe-t-il un moyen de lier des propriétés dans itemtemplate à une propriété dans itemsource? Ou y a-t-il une approche alternative à ce que j'essaie finalement d'accomplir?
Merci!
Je pense que cela pourrait être dû au fait que vous essayez de définir 'x: Name' et' Name' en même temps. Voir ma modification ci-dessous. – Donut