Hey. J'ai des problèmes de liaison avec XAML. J'ai une liste d'objets Player
. Je voudrais que cette liste soit liée à un ListBox et affiche le Name
du Player
. Pour l'instant, la zone de liste est remplie avec Red.Player
(c'est-à-dire le type d'objet et l'espace de noms). Mon style ressource dictionnaire ressemble à ceci:Reliure indiquant le type plutôt que la valeur
<Style x:Key="PlayerListBox" TargetType="ListBoxItem">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="LayoutRoot" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}" d:DesignWidth="231" d:DesignHeight="50">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="LayoutRoot">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TransparentBrush}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected"/>
<VisualState x:Name="Selected"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<TextBlock TextWrapping="Wrap" Text="{Binding}" FontSize="29.333" TextAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Je pense que la partie principale est la suivante:
<TextBlock TextWrapping="Wrap" Text="{Binding}" FontSize="29.333" TextAlignment="Center"/>
J'ai essayé d'utiliser Text="{Binding Name}"
mais rien ne montre du tout. Je la mise en ItemsSource
lorsque l'utilisateur a sélectionné un joueur:
PlayerList.ItemsSource = ListofPlayers;
Merci pour toute aide
hey. Oui, c'est une propriété publique. Dans la classe Player, j'ai ceci: 'public string Name {get; ensemble; } ' – Skoder
D'oh, travaillait trop longtemps. J'ai juste eu une propriété sans utiliser le champ privé, donc je n'ai pas eu de nom de retour. Merci. (acceptera la réponse dans 5 minutes, quand je peux :) – Skoder
Heureux que c'est résolu pour vous. Notez que vous pouvez utiliser des extraits de prop dans VS pour aider avec ce genre de choses plutôt que de taper manuellement. –