WPF listbox在鼠标上选择项目
您可使用列表框本身的风格,影响其所有项目做到这一点:
<ListBox.Resources>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver,RelativeSource={RelativeSource Self}}"
Value="True">
<Setter Property="IsSelected" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Resources>
这会当IsMouseOver属性为true的项目IsSelected属性设置为true。如果你的列表框不是多选的,它就像你期望的那样工作。
效果很好。奇怪的是,当我的数据绑定到SelectedItem和它绑定到的项目之前有一个值它的鼠标将不会选择该项目(如果你离开并回来)。有任何想法吗? – 2010-04-11 09:58:04
这很奇怪。出于兴趣,尝试添加一个setter以将样式中的IsSelected设置为false(触发器外部)。 – 2010-04-11 10:29:54
不,不解决它。我可以解决它(由于没有在启动时选择),但这是我不介意弄清楚的。 – 2010-04-11 11:00:53
好问题。如果使用模板而不使用代码隐藏,可以发现这种事件重定向是否可行。 – Russell 2010-04-11 09:27:12