web-dev-qa-db-fra.com

Format de chaîne utilisant MultiBinding?

J'essaie d'afficher une chaîne en XAML à l'aide du contrôle Label. Voici mon code XAML:

<Label Height="28" HorizontalAlignment="Left" Margin="233,68,0,0" Name="label13" VerticalAlignment="Top">
    <Label.Content>
        <MultiBinding StringFormat="{}{0} x {1}">
              <Binding Path="Width" />
              <Binding Path="Height" />
        </MultiBinding>
    </Label.Content>

La largeur et la hauteur sont deux propriétés de ma classe Movie. Je veux que l'étiquette affiche: "Largeur x Hauteur" ex. 800 x 640 Cependant, le contrôle d'étiquette reste vide. Toute aide est appréciée. JE VEUX LE FAIRE SANS UTILISER DE CONVERTISSEUR.


J'ai modifié mon xaml en utilisant un TextBlock au lieu de Label. Mais il ne peuplera toujours pas afficher la sortie.

<TextBlock Height="28" HorizontalAlignment="Left" Margin="233,68,0,0" Name="label13" VerticalAlignment="Top">
                <TextBlock.Text>
                    <MultiBinding StringFormat="{}{0} x {1}">
                        <Binding Path="Width" />
                        <Binding Path="Height" />
                    </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
26
Lucifer

vous essayez de lier une chaîne à un objet. Mais StringFormat requiert que sa cible soit un type chaîne.

essayez de mettre un TextBlock dans le contenu de votre étiquette et de lier vos données à celui-ci

<StackPanel>
  <Slider x:Name="sl1" Minimum="10" Maximum="100"/>
  <Slider x:Name="sl2" Minimum="10" Maximum="100"/>
  <Label x:Name="label13" Background="Yellow" Foreground="Black">
    <Label.Content>
        <TextBlock>
          <TextBlock.Text>
            <MultiBinding StringFormat="{}{0} x {1} Test">
              <Binding ElementName="sl1" Path="Value" />
              <Binding ElementName="sl2" Path="Value" />
            </MultiBinding>
          </TextBlock.Text>
        </TextBlock>
    </Label.Content>
  </Label>
</StackPanel>

MODIFIER votre classe Movie doit implémenter l'interface INotificationPropertyChanged et vos deux propriétés doivent déclencher l'événement de propriété changé avec leurs noms de propriété!

j'espère que cela t'aides

77
punker76