我有一个接受输入的WinForm上的文本框(多行)。这是我创建的一个对象的数据绑定。当我键入:C#如何通过数据绑定保留换行符?
"hello
world"
我看到在我的对象的值是“你好\ r \ nworld”,符合市场预期。但是当我离开对象并在以后重新绑定时,文本字段就会“helloworld”全部聚集起来。当我再次看场时,它是“hello \ nworld”。 \ r被剥离了一些如何。
\ r在数据绑定过程中去了哪里?我能做些什么来确保它保持?
我有一个接受输入的WinForm上的文本框(多行)。这是我创建的一个对象的数据绑定。当我键入:C#如何通过数据绑定保留换行符?
"hello
world"
我看到在我的对象的值是“你好\ r \ nworld”,符合市场预期。但是当我离开对象并在以后重新绑定时,文本字段就会“helloworld”全部聚集起来。当我再次看场时,它是“hello \ nworld”。 \ r被剥离了一些如何。
\ r在数据绑定过程中去了哪里?我能做些什么来确保它保持?
\r\n
指的十六进制代码0xD 0xA
和(仅在Windows)表示新行的指令,我想,当你的数据绑定文本内容\r\n
被转换成它的通用一个\n
,这就是为什么你得到它为helloworld
作为显示的文本,并且hello\rworld
作为数据,但它不会作为新行处理,因为它仅提供\r Carriage Return
指令,而不提供\n Line Feed
指令。
我认为你可以使用
Environment.NewLine
解决您的问题。
("hello\r\nplagiarism world").Replace("\r\n", Environment.NewLine)
?
编辑
你正在用'Environment.NewLine'替换字符串'hello \ r \ nplagiarism world'吗? – 2011-02-26 04:51:12
邮摄制代码。 – 2011-02-26 02:00:47
AHA!我发现它......当我将它序列化并将它带回(因此我如何“重新绑定”......我将保存该文件并重新打开它),换行符被搞砸了。我已经完成了一百万次序列化,所以我只是假定它是在绑定中。我已经证明它是在序列化的一块! – Jerry 2011-02-26 02:13:24