使用 MultiBinding 的字符串格式? [英] String format using MultiBinding?

查看:44
本文介绍了使用 MultiBinding 的字符串格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Label 控件在 XAML 中显示字符串.以下是我的 XAML 代码:

I'm trying to display a string in XAML using Label control. Following is my XAML code :

<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 高"例如.800 × 640但是标签控件保持为空.任何帮助表示赞赏.我想在不使用转换器的情况下执行此操作.

Width and Height are two properties of my class Movie. I want the label to display : "Width x Height" ex. 800 x 640 However the label control remains empty. Any help is appreciated. I WANT TO DO THIS WITHOUT USING A CONVERTER.

我使用 TextBlock 而不是 Label 修改了我的 xaml.但它仍然不会填充显示输出.

I have modified my xaml by using a TextBlock instead of Label. But still it wont populate display the output.

<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 要求其目标是字符串类型.

you are trying to bind a string to an object. But StringFormat requires its target to be a string type.

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

try putting a TextBlock in your label content and bind your data to it

<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 接口,并且您的两个属性必须使用它们的属性名称引发属性更改事件!

EDIT your class Movie must implement the INotificationPropertyChanged interface and your two properties must raise the property changed event with their proprty names!

希望能帮到你

这篇关于使用 MultiBinding 的字符串格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆