2012-11-14 23 views
4

聲明空字符串我試着寫簡單的更換在WinRT中DataTriggers,像丟失:如何在Metro UI的XAML

<dt:DataTrigger Property="Message" Value=""> 
    <dt:Setter TargetName="tbMessage" Property="Visibility" Value="Collapsed" /> 
</dt:DataTrigger> 

所以我有類DataTrigger與在XAML設置屬性值。我需要將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> 

此代碼拋出異常「類型的異常‘Windows.UI.Xaml.Markup.XamlParseException’mscorlib.dll中發生,但在用戶代碼中沒有處理

WinRT信息:未找到'String'類型。「

使用方法<x:Static Member="sys:String.Empty" />無法使用,因爲在WinRT x:Static丟失。

甚至可以在WinRT XAML中聲明一個空字符串嗎?

+0

您是否嘗試過使用= 「{x:空}」? –

+0

是的,那麼我的Value屬性被設置爲null,但我需要空字符串:) – EugenSoft

回答

0

試試這個

<TextBlock Text="{x:Static System:String.Empty}" Name="emptyString"/> 
+0

不幸的是x:靜態僅存在於WPF中,而不是WinRT中。 – EugenSoft

+0

對不起,沒有檢查Win8。如果您嘗試更改觸發器,如' '? – Encarmine

+0

是的,在這種特殊情況下使用Message.Length解決了我的問題。但有兩件事我爲什麼不能使用它: – EugenSoft