【发布时间】:2012-01-10 14:57:03
【问题描述】:
我有以下问题。
我想将字符串分隔为某个符号。这可以是逗号、空格、制表符或其他内容。
我将该分隔符存储在我的依赖属性Delimiter中。
在我的 WPF 代码中,我有以下单选按钮,应该检查 Delimiter 是否属于该单选按钮。
这是 WPF 代码:
<RadioButton IsChecked="{Binding ElementName=view, Path=Delimiter, Converter={StaticResource MyConverterToCheckForEquality}, ConverterParameter=\t}" Tag="\t" />
如果我检查转换器中的参数,则值为“t”。
我想要 '\t' 所以我尝试了以下选项:
- \t
- \\t
- \\\t
- '\t'
- '\\t'
- '\\\t'
- \t
- '\t'
- {}{\t}
- '{}{\t}'
(注意:我添加了额外的空格和反斜杠以在此处正确显示)。
结果非常令人难过......三倍和双反斜杠给了我双反斜杠,单给我没有。 \也给了我零反斜杠。
也许最令人沮丧的是,当我使用 Tag 属性设置分隔符时,\t 工作正常,并且在此过程中没有额外转义...
有人可以解释为什么会发生这种情况,为什么这些选项都不起作用以及如何解决它?
更新
当我在多数据触发器中使用多重绑定时,结果是不同的:
<Binding ElementName="view" Path="Delimiter" Converter="{StaticResource MyConverterToCheckForEquality}" ConverterParameter="\\\t" />
我的转换器中的参数值现在是'\\\\\\t',但我仍然无法使其工作。
我可以替换该值,但这意味着我必须在我的代码隐藏文件中使用不同的变量,这将非常难看。不过我想没有其他解决方案。
【问题讨论】:
标签: c# wpf data-binding escaping converter