中的唯一項,我有一個類myClass
,其中包含element
s的列表。這個element
有一個name
-屬性來標識它們。在Silverlight 4應用程序中確保列表中包含Silverlight數據綁定
class element
{
string Name { get; set; }
}
class myClass
{
List<element> elements { get; }
}
要顯示的元素的列表,我數據綁定myClass.elements
到Silverlight的列表框:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBox Text="{Binding Name, FallbackValue=[None], Mode=TwoWay,
NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
...
這樣,更改element
的Name
自動傳播回。但我需要確保,該Name
是獨特的myClass.elements
(和一些更多的約束,取決於myClass
性能
當然,這些元素不知道誰包含它(它不應該知道的。我認爲)。所以我的問題是:我如何檢查元素的約束(在Name屬性的setter中)?我真的想使用Silverlight-Databinding,因爲它已經實現了錯誤通知。
在此先感謝,
弗蘭克
有一個問題,如果用戶嘗試輸入重複項,您希望應用程序做什麼?您可以嘗試讓元素設置器引發一個事件,即容器類訂閱,以驗證該項目。 – EtherDragon
應用程序不應保存該值,文本框應顯示一個錯誤(通過NotifyOnValidationError和ValidatesOnExceptions),所以我猜測setter需要提高錯誤。當我在二傳手中提出一個事件時,我無法在二傳手中反應驗證結果(不設置屬性,提高錯誤),是嗎? – Aaginor