ListBoxItem悬停在ViewModel中时触发事件

时间:2016-03-10 12:19:01

标签: wpf binding listbox viewmodel listboxitem

问题

我有一个显示图像列表的列表框。我希望能够将鼠标悬停在图像上,并以更大的尺寸显示图像。我能够获得悬停效果并显示我输入的一些文本,但我需要更改不同的 ListBoxItems 的图像。

代码

以下是我用来获取悬停效果的代码:

<ListBox.ItemContainerStyle>                    
    <Style TargetType="ListBoxItem">
        <Setter Property="Padding" Value="5,0,5,5" />
        <Setter Property="Height" Value="140"/>
        <Setter Property="Width" Value="200"/>  
            <Style.Triggers>
                <Trigger Property="Control.IsMouseOver" Value="True">
                    <Setter Property="ToolTip" Value="{Binding IMAGEHERE}"></Setter>
                    <Setter Property="Control.Background" Value="#d64b36" />
                </Trigger>
            </Style.Triggers>
    </Style>
</ListBox.ItemContainerStyle>

因为你可以看到我有工具提示,但我需要将图像绑定到ViewModel的值。

如果我在浏览ListBoxItem时触发了我的ViewModel中的事件,它应解决我的问题。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用ToolTip控件设置Image

 <Style.Triggers>
    <Trigger Property="Control.IsMouseOver" Value="True">
      <Setter Property="Control.ToolTip">
            <Setter.Value> 
                  <Image Source="{Binding Imagepath}" /> 
            </Setter.Value>
       </Setter>
    </Trigger>
 </Style.Triggers>

然后,您可以从ViewModel传递源Imagepath属性。我还没有测试过这个。