我正在尝试使用Label控件在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>
宽度和高度是我的类Movie的两个属性。 我希望标签显示:“宽度x高度”ex。 800 x 640 但是标签控件仍然是空的。任何帮助表示赞赏。 我想在不使用转换器的情况下这样做。
我使用TextBlock而不是Label修改了我的xaml。但它仍然不会填充显示输出。
<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>
答案 0 :(得分:77)
您正在尝试将字符串绑定到对象。但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接口,并且您的两个属性必须使用其proprty名称引发属性更改事件!
希望这会有所帮助