WPF:从ListBox绑定到源的一种方式

时间:2017-12-18 23:46:32

标签: c# wpf xaml listbox selecteditem

我有一个ListBox,其ItemSource是一个List,其中X被定义为:

account.move

我的ViewModel是

public class X
{
    public string FullPath { get; set; }
}

和XAML:

public class ViewModel
{
    public List<X> MyList { get; set; }
    public X MyItem { get; set; }
    public ViewModel()
    {
        MyList = new List<X>
        {
            new X { FullPath = "q:\\temp\\x1.png"},
            new X { FullPath = "q:\\temp\\x2.png"}
        };
    }
}

当我在ListBox中使用键盘向上和向下箭头时(这是在ListBox中选择的路径中的图像显示在&lt; Image&gt;中)。但是,当我用鼠标单击某个项目时,我没有在ListBox中选中我单击的项目(鼠标单击无效)。正确的图像非常短暂地显示在图像中(几分之一秒),然后显示原始图像。我做错了什么?

2 个答案:

答案 0 :(得分:3)

由于您使用的是StackPanelImageListBox选择更改时更改,Image控件的大小可能会发生变化,因此ListBox

这样的情况可能会导致当您释放鼠标按钮时单击的列表项不是同一项,因为项位置已更改。

有许多解决方法,例如修复Image控件的大小,使用Grid定义布局,或者只将Image放在ListBox

StackPanel之后

答案 1 :(得分:-1)

我可以重现此问题,您可以修复图像大小或将图像控件移动到列表框下方。我同意埃文