ti-enxame.com

Formato de string usando MultiBinding?

Estou tentando exibir uma seqüência de caracteres em XAML usando o controle Label. A seguir está o meu código 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>

Largura e Altura são duas propriedades da minha classe Movie. Quero que o rótulo exiba: "Largura x Altura" ex. 800 x 640 No entanto, o controle de etiqueta permanece vazio. Qualquer ajuda é apreciada. QUERO FAZER ISSO SEM USAR UM CONVERSOR.


Eu modifiquei meu xaml usando um TextBlock em vez de Label. Mas ainda assim não será exibido o resultado.

<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

você está tentando vincular uma string a um objeto. Mas StringFormat requer que seu destino seja um tipo de string.

tente colocar um TextBlock no conteúdo do seu rótulo e vincular seus dados a ele

<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>

EDIT sua classe Movie deve implementar a interface INotificationPropertyChanged e suas duas propriedades devem aumentar o evento alterado de propriedade com seus nomes de propriedade!

espero que isto ajude

77
punker76