2013-10-18 63 views
1

在我的Windows Phone 8 C#/ XAML .NET 4.5應用程序中,我使用ViewModel的數據綁定工作正常。數據綁定 - Lozalized FallbackValue/TargetNullValue等

我想是從LocalizedResources一個lozalized字符串顯示爲一個按鈕,在下列情況下內容:

  • 通過結合返回的值是null

  • 的綁定無法解決

這怎麼能實現?

我一直試圖做的是:

(略TargetNullValue,因爲這樣做很可能將是相同的方式)

(用於演示的目的,我設置了資源是Applicationtitle)

<Button ... Content="{Binding Something, FallbackValue={Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}}" ... /> 

但我得到的是像System.Windows.Text.Data.Binding...文本(不能讀更多,因爲它的出屏)。

做了一些Google搜索/「stackoverflowing」,發現WP7的價值轉換器,這讓我有點困惑。

(並添加了C#標籤,因爲我有一種感覺,這不會僅僅通過向「屬性」的標籤/值添加正確的「屬性」來解決,儘管我很感激它)

回答

1

我敢肯定,你不能將綁定應用於FallbackValue。一個非常簡單的解決方法是在'Something'屬性中檢查null。

private string _something; 

public string Something 
{ 
    get { return _something ?? AppResources.ApplicationTitle; } 
    set 
    { 
     _something = value; 
     OnPropertyChanged("Something"); 
    } 
} 
+0

我知道這是可能的,我已經看到了WP7的例子。我只是希望有人能夠知道這個答案 - 我想做「我的方式」。感謝這個建議,但它是穩定的,如果沒有人回答一些更符合我喜好的建議,我可能會回到它。 :) – mishan

+0

我以爲我會使用PriorityBinding,這將是WP8中的一件好事,但它不存在。所以唯一的其他解決方案可能是轉換器,這似乎是更多的阻力然後你的建議...... :( – mishan