Штаны, штаны! ... По крайней мере, я нашел решение, но это было трудно!
Мое решение:
<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) не может находиться в другом месте, кроме элемента управления внутри шаблона. А свойство TargetObject объекта ChangePropertyAction можно связать, только связывая имя элемента управления внутри шаблона (TargetObject = "{Binding ElementName = g}")
По этой причине невозможно связать DataTrigger со всем Item и установить его свойство IsEnabled, но нам нужно работать с каждым отдельным элементом управления и нам нужно воспроизводить поведение Item, когда он отключен. В частности, мы можем установить для свойства IsHitTestVisible главной таблицы, содержащего все остальные элементы управления, значение False, чтобы избежать ответственности за входные данные мыши.
Наконец, в WPF было гораздо проще, но важно знать, что делать.