2012-07-03 46 views
0

我有一個窗體,其中有一些文本框通過校準的自動綁定綁定到它們在VM中的屬性。然而,如果你在文本框上鍵入某些對綁定沒有意義的東西,那Caliburn根本就沒有做任何事情(或者我把它看作是)。是否有可能驗證Caliburn.Micro輸入綁定

我想知道是否有方法讓Caliburn將輸入約束在某種程度上。例如:

我有一個TextBox綁定到VM中的TimeSpan。 寫入00:00:10可以正常工作,並將TimeSpan設置爲10秒。

如果我會寫00:00:-10沒有任何反應,並且綁定保持在正確綁定的前一個值。

回答

2

您的問題與Caliburn.Micro無關,它只是幫助您使用數據綁定將視圖連接到視圖模型。你需要使用的是數據綁定的驗證。您可以閱讀更多關於data binding in Silverlight,尤其是數據驗證部分是您應該學習的內容。

Caliburn.Micro使用約定自動創建綁定。但是,您可能必須在XAML中自定義這些綁定才能獲得所需的驗證行爲。

在您編寫00:00:-10的情況下,您的驗證失敗,因爲綁定引擎的類型轉換器引發異常。如果TextBox的綁定表達式的ValidatesOnExceptions屬性值設置爲true,則會獲得該值無效的視覺反饋。而且由於輸入的值無法轉換爲TimeSpan,因此不會對視圖模型進行更改。