我想编写一个简单的替代方案用于 WinRT DataTriggers 中缺少的功能,类似于:
<dt:DataTrigger Property="Message" Value="">
<dt:Setter TargetName="tbMessage" Property="Visibility" Value="Collapsed" />
</dt:DataTrigger>
我有一个名为DataTrigger的类,其中有一个在XAML中设置的属性Value。我需要将Value设置为空字符串string.Empty。当我使用""(空括号)时,Value被设置为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>
变量的值仍然为null。我尝试使用以下代码:
xmlns:sys="using:System" ... <sys:String x:Key="EmptyString"></sys:String>
这段代码会抛出异常 "An exception of type 'Windows.UI.Xaml.Markup.XamlParseException' occurred in mscorlib.dll but was not handled in user code
WinRT 信息: 找不到类型 'String'."
替代使用 <x:Static Member="sys:String.Empty" />
的方法无法使用,因为在 WinRT 中缺少 x:Static
。
在 WinRT XAML 中声明空字符串是否可能?