与QuickConverter的字符串比较

The*_*One 6 c# wpf xaml

我想在Idea.Status =="已验证"时执行某些操作,但QuickConverter(1 - 2)不允许我使用以下任何一项:

Binding="{qc:Binding '$P==Verified',P={Binding Path=Idea.Status}}"
Binding="{qc:Binding '$P=="Verified"',P={Binding Path=Idea.Status}}"
Run Code Online (Sandbox Code Playgroud)

"已验证"是一个意外的令牌.期待白色空间.

无法将表达式标记为"$ P =已验证".你忘记了'$'吗?

如何告诉quickconverter和XAML我想要与字符串进行比较?

Ted*_*olo 8

QuickConverter对字符串文字使用单引号.但是在标记扩展中,您需要转义单引号,因此您需要在它之前添加\.

所以你的绑定应该是

Binding="{qc:Binding '$P==\'Verified\'',P={Binding Path=Idea.Status}}"
Run Code Online (Sandbox Code Playgroud)


小智 4

我就是这样做的。它的工作方式与所选答案相同,但 xaml 解析器更快乐并且不会抛出恼人的(假)错误

Binding="{Path=Idea.Status, Converter={qc:QuickConverter '$P == \'Verified\''}}"
Run Code Online (Sandbox Code Playgroud)