我有什麼:
1.在XAML中的文本塊
2.從包含DateTime的數據庫查詢?類型數據。
我該怎麼做:
1.我用DateTime聲明瞭一個類「myClass」?名爲「指明MyDate」
我想
1.參數顯示在文本塊[我知道]
2.當「指明MyDate」值爲空,顯示在文本塊一個字符串指明MyDate。 [我不知道,因爲Get方法只能返回DateTime?類型值,但不是字符串類型。]如何返回不同類型的參數?
回答
嘗試使用綁定您的文字塊這樣的:
<TextBlock Text="{Binding myDate, TargetNullValue='Your null message'"/>
聲明一個字符串變量;如果myDate
不爲空,則爲其分配日期值 - 否則將其設置爲默認值。實例:
string stringToShow = null;
if(myDate.HasValue)
{
stringToShow = myDate.Value.ToString();
}
else
{
stringToShow = "other string";
}
,或者更簡明的三元
string stringToShow = myDate.HasValue ? myDate.Value.ToString() : "other string";
然後示出了在文本塊stringToShow
代替myDate
。最後,你可以在一個擴展方法包裝這使它超級容易撥打:
public static string ToSpecialString(this DateTime? date)
{
return myDate.HasValue ? myDate.Value.ToString() : "other string";
}
然後,你可以調用myDate.ToSpecialString()
在前端。
爲什麼是惡劣的工程實踐? –
我一般對三元運算符不以爲然;如果你有另一種情況需要處理,或者需要做一些比簡單分配變量更復雜的事情,那麼你現在必須翻出一段舊代碼並用if/else代替它。基本上,它使維護您的代碼庫更多的工作。另外,它們使事情難以調試。 – eouw0o83hf
在這種情況下,我認爲條件運算符*完全*有效。當然,如果你需要做更復雜的事情,那麼將它分解爲單獨的if/else子句是值得的,但對於這種特定情況 - 根據條件分配一個或另一個值 - 條件運算符是理想的。如果我在我維護的代碼庫中看到它,我會將第一個表單重構爲第二個表單。 –
你應該寫一個轉換器,當'is null'檢查並返回信息字符串時。
這將允許您直接從XAML使用標準數據綁定來完成,而不需要在代碼隱藏文件中添加任何代碼。
- 1. 返回與參數不同的類型
- 2. 如何根據模板參數返回不同類型
- 3. 如何使用Mockito爲不同的參數提供不同的返回類型?
- 4. C# - 函數的返回類型與參數的返回類型相同
- 5. actionscript中的泛型(返回類型與參數類型相同)
- 6. 如何返回作爲數組子類型的類型參數?
- 7. 如何獲取函數的參數類型和返回類型?
- 8. 不同的返回類型
- 9. 推導其參數的返回類型函數返回類型
- 10. 一個泛型類型參數,返回類型不同的泛型?
- 11. 如何從具有不同類型參數的函數返回浮點數?
- 12. 運算符超載(相同參數,不同返回類型)
- 13. WCF返回不同類型的數據
- 14. 返回不同的數據類型C#
- 15. information_schema.columns返回不同的數據類型。
- 16. 虛函數的返回類型不同
- 17. 函數Java的不同返回類型
- 18. 不同的Java函數返回類型
- 19. 返回不同類型
- 20. 當返回類型不同
- 21. 參數和返回類型有不同的屬性嗎?
- 22. 帶返回值類型的參數不是第一個參數,或者返回值類型有多個參數
- 23. 在C++中,如何根據類中的參數返回不同的泛型?
- 24. 如何輸入不同類型的參數到函數中返回一個類型的數據?
- 25. 不同的返回類型爲基類
- 26. 根據輸入參數返回不同類型
- 27. 如何返回不同類型的數組?
- 28. 如何在java上返回不同的數組列表類型?
- 29. 如何在不同的返回類型函數中返回錯誤消息?
- 30. 模板類不同的返回類型取決於類的參數
工程就像一個魅力和容易像一塊。這個技巧是否適用於所有的綁定源類型可以爲空? –
@AlbertGao我認爲它適用於所有可爲空的類型,但從未真正需要它,所以你必須開始試驗。 :D – BigL
感謝@BigL以及所有在本文中付出時間的人:) –