我试图根据ListBoxItem内容的IsEnabled属性禁用ListBox项。与此代码中一样,按钮1的IsEnabled = False,但列表框项是可选的。如果内容IsEnabled属性为false,我想禁用选择。应该如何触发搜索项目内容及其IsEnabled属性。
<Grid>
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="IsEnabled" Value="False"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBoxItem>
<Button IsEnabled="False">1</Button>
</ListBoxItem>
<ListBoxItem>
<Button>2</Button>
</ListBoxItem>
<ListBoxItem>
<Button>3</Button>
</ListBoxItem>
</ListBox>
</Grid>
答案 0 :(得分:0)
为什么不在IsEnabled
上设置ListBoxItem
呢?它也应该禁用Button
。
但是,您可以使用Button.IsEnabled
绑定将ListBoxItem.IsEnabled
绑定到RelativeSource
,并设置IsEnabled
的{{1}}属性,而不是ListBoxItem
也是
Button
如果您正在使用WPF,我强烈建议您查看MVVM设计模式。它非常适合WPF,使用它可以将<Button IsEnabled="{Binding IsEnabled,
RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}" />
和ListBoxItem.IsEnabled
绑定到Button.IsEnabled