我的多选 ListBox 中的 ListBoxItems 上有以下数据触发器
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource DisableWorkItemConverter}">
<Binding ElementName="MainForm" Path="PickedWorkItemID"/>
<Binding Path="Id"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="IsSelected" Value="False"/>
</DataTrigger>
IsEnabled 设置得很好,但 IsSelected 没有设置。我该如何解决?
我尝试取出 IsEnabled 以查看它是否与 IsSelected 冲突,但该项目在不应该被选中时仍保持选中状态。
重申一下,我可以告诉绑定和转换器工作正常,因为 IsEnabled 工作正常。但由于某种原因 IsSelected 不会取消设置。
编辑:我突然想到我可能不希望它像 IsEnabled 那样工作。因为当此触发器评估为 false 时,该项目将重新启用。我不希望仅仅因为此触发器不再正确而选择以前未选择的行。
有任何想法吗?基本上我不希望选择任何禁用的行。
编辑2:
我尝试添加一个普通触发器,希望它会链接数据触发器,但这也不起作用。
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource DisableWorkItemConverter}">
<Binding ElementName="MainForm" Path="PickedWorkItemID"/>
<Binding Path="Id"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="IsSelected" Value="False"></Setter>
</Trigger>
</Style.Triggers>