0

我有一堆需要显示的键/值对文本数据。

我目前使用LongListSelector和一个ItemTemplate,它使用一个水平StackPanel ,里面有两个TextBlock

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Title: " />
    <TextBlock Text="{Binding Path=Title}" TextWrapping="Wrap" />
</StackPanel>

这给出了一个很好的“标签:价值”外观。

但是,我觉得这很冗长。 有没有更好的方法来实现同样的目标?

我尝试将所有内容都放在一个 TextBlock 中,如下所示:

<TextBlock Text="Title: {Binding Path=Title}" TextWrapping="Wrap" />

但它不想工作!

4

1 回答 1

2

在单个 TextBlock 内,这是不可能的。但是,您可以使用 ValueConverter:

public class NameValueConverter : IValueConverter
{
    public object Convert(Object value,
    Type targetType,
    Object parameter,
    CultureInfo culture)
    {
        return "Title: " + (string)value;
    }
}

您应该将此作为全局资源(名为NameValueConverter)添加到您的 app.xaml 中。然后您可以在 XAML 中执行此操作:

<TextBlock Text="{Binding Path=Title, Converter={StaticResource NameValueConverter}}" TextWrapping="Wrap" />

当数据绑定启动时,它会将 Title 传递给 valueconverter 并将结果绑定到文本框。

于 2013-08-19T07:22:23.660 回答