0

我正在从前一页中提取数据,该页面是 wcf 服务的列表框中的选定项目。

我遇到的另一个错误是文本块没有读取我的数据中的格式。

这是从上一页引入数据的代码

private void LoadPlayer()
    {
        FrameworkElement root1 = Application.Current.RootVisual as FrameworkElement;
        var currentPlayer = root1.DataContext as PlayerProfile;
        _SelectedPlayer = currentPlayer;
    }

这是xml

<TextBlock Height="Auto" TextWrapping="Wrap" Name="Blurb" Text="{Binding Bio}" xml:space="preserve" />

具体来说,我试图让 \r\n 在我的显示器中作为换行符工作。

4

1 回答 1

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", "&#x0d;" );
        stringtoconvert = stringtoconvert.Replace( "\n", "&#x0a;" );

        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}}" />
于 2012-08-16T09:10:56.747 回答