【发布时间】:2012-11-14 13:40:20
【问题描述】:
我正在尝试为 WinRT DataTriggers 中的缺失编写简单的替换,例如:
<dt:DataTrigger Property="Message" Value="">
<dt:Setter TargetName="tbMessage" Property="Visibility" Value="Collapsed" />
</dt:DataTrigger>
所以我有在 XAML 中设置的属性 Value 的类 DataTrigger。我需要将值设置为 string.Empty。当我使用“”(空括号)时,值设置为 null,而不是 string.Empty。 我试图在资源中定义空字符串:
<x:String x:Key="EmptyString"></x:String>
并像使用它
<dt:DataTrigger Property="Message" Value="{StaticResource EmptyString}">
<dt:Setter TargetName="tbMessage" Property="Visibility" Value="Collapsed" />
</dt:DataTrigger>
值仍然设置为空。我也尝试过使用下一个代码:
xmlns:sys="using:System" ... <sys:String x:Key="EmptyString"></sys:String>
此代码抛出异常“在 mscorlib.dll 中发生了类型为 'Windows.UI.Xaml.Markup.XamlParseException' 的异常,但未在用户代码中处理
WinRT 信息:找不到类型“字符串”。"
无法使用使用 <x:Static Member="sys:String.Empty" /> 的方法,因为在 WinRT 中缺少 x:Static。
甚至可以在 WinRT XAML 中声明一个空字符串吗?
【问题讨论】:
-
你试过用="{x:Null}" 吗?
-
是的,然后我的 Value 属性按预期设置为 null,但我需要空字符串 :)
标签: c# xaml microsoft-metro windows-runtime winrt-xaml