中的唯一项,我有一个类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