2013-08-19 57 views
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" /> 

,但它不想要的工作!

回答

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

當數據綁定在踢,它會通過標題到valueconverter並將結果以文本框綁定。

+0

標籤將在兩個對之間變化。有沒有一種方法可以將參數傳遞給_NameValueConverter_? – Howie

+0

你可以傳遞一個參數給綁定,但是這不能是DataBound,因爲它不是一個DependencyProperty,所​​以它不能改變,取決於這個對 – Kenneth