Silverlight 4.0使用XAML绑定禁用某些ListBoxItems
在Silverlight 4.0中,是否可以使用XAML绑定禁用某些ListBoxItems 我在网络上找到了一些解决方案,但没有一个能与Silvelight 4.0配合使用 谢谢大家!Silverlight 4.0使用XAML绑定禁用某些ListBoxItems,silverlight,data-binding,silverlight-4.0,listbox,Silverlight,Data Binding,Silverlight 4.0,Listbox,在Silverlight 4.0中,是否可以使用XAML绑定禁用某些ListBoxItems 我在网络上找到了一些解决方案,但没有一个能与Silvelight 4.0配合使用 谢谢大家! 皮莱吉裤子,裤子。。。至少我找到了解决办法,但很难 我的解决办法是: <Style x:Key="modItemMainParts" TargetType="ListBoxItem"> <Setter Property="Template"> <Setter
皮莱吉裤子,裤子。。。至少我找到了解决办法,但很难 我的解决办法是:
<Style x:Key="modItemMainParts" TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid x:Name="g" Background="{TemplateBinding Background}">
...
<i:Interaction.Triggers>
<ei:DataTrigger Binding="{Binding abilitato}" Value="False">
<ei:ChangePropertyAction TargetObject="{Binding ElementName=g}" TargetName="IsHitTestVisible" Value="False" PropertyName="IsHitTestVisible"/>
<ei:ChangePropertyAction TargetObject="{Binding ElementName=g}" TargetName="Opacity" Value="0.5" PropertyName="Opacity"/>
</ei:DataTrigger>
</i:Interaction.Triggers>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
...
这些结论是个人的,当然有些问题是可以解决的,但是
- 与WPF相反,在Silverlight中,DataTrigger(及其ChangePropertyAction)不能停留在模板内控件的其他位置。而ChangePropertyAction对象的属性TargetObject只能通过链接模板内控件的名称进行绑定(TargetObject=“{Binding ElementName=g}”)
- 因此,不可能将DataTrigger与整个项绑定,也不可能将其属性设置为IsEnabled,但我们需要处理每个控件,并且需要在禁用项时重现该项的行为。特别是,我们可以将包含其他控件的主网格的属性ishitsetvisible设置为False,以避免它负责鼠标输入
最后,在WPF中,它非常简单,但重要的是知道该做什么。您是在谈论动态列表框还是硬编码?