我从上一页中提取数据,该数据是来自wcf服务的列表框中的选定项目。
我遇到的错误是文本块没有在我的数据中读取格式。
这是从上一页带来数据的代码
private void LoadPlayer()
{
FrameworkElement root1 = Application.Current.RootVisual as FrameworkElement;
var currentPlayer = root1.DataContext as PlayerProfile;
_SelectedPlayer = currentPlayer;
}
这是xaml
<TextBlock Height="Auto" TextWrapping="Wrap" Name="Blurb" Text="{Binding Bio}" xml:space="preserve" />
具体来说,我试图将\ r \ n作为换行符在我的显示器中工作。
答案 0 :(得分:0)
见答案:
在您的情况下,您需要编写一个转换器(实现IValueConverter的东西),将包含\ r \ n的字符串数据转换为编码实体,即 和 。然后在绑定上使用该转换器。
public class EncodeCRLFConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string stringtoconvert = value as string;
if (input != null))
{
// Note there are different ways to do the replacement, this is
// just a very simplistic method.
stringtoconvert = stringtoconvert.Replace( "\r", "
" );
stringtoconvert = stringtoconvert.Replace( "\n", "
" );
return stringtoconvert;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}
在某处创建转换器的实例...例如。通常在.Resources ....(在这个例子中,我刚刚使用了Window,因为我不知道你的TextBlock在里面是什么)。
<Window.Resources>
<EncodeCRLFConverter x:Key="strconv"/>
<Window.Resources>
<TextBlock Height="Auto" TextWrapping="Wrap" Name="Blurb" Text="{Binding Bio, Converter={StaticResource strconv}}" />