使用MultiBinding的字符串格式



我试图使用标签控件在XAML中显示字符串。以下是我的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>

Width和Height是Movie类的两个属性。我想要的标签显示:"宽度x高度"ex. 800 x 640但是,标签控件仍然为空。任何帮助都是感激的。我想在不使用转换器的情况下做到这一点。


我已经修改了我的xaml使用TextBlock而不是标签。但是它仍然不会填充显示输出。

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

您正在尝试将字符串绑定到对象。但是StringFormat要求它的目标是字符串类型。

尝试在你的标签内容中放置一个TextBlock并将你的数据绑定到它

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

编辑你的类Movie必须实现INotificationPropertyChanged接口,并且你的两个属性必须用它们的属性名引发属性更改事件!

希望能有所帮助

相关内容

  • 没有找到相关文章

最新更新