我希望当我双击ListView
中的某一行时,它应显示与该行对应的Image
。该行还包含Image
的路径。
我尝试了以下操作,但它为所有行显示相同的Image
,因为我已经为特定的Image
提供了路径:
private void ListViewEmployeeDetails_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
ImageSource imageSource = new BitmapImage(new Uri(@"C:\northwindimages\king.bmp"));
image1.Source = imageSource;
}
请提出建议。
答案 0 :(得分:1)
它们的关键是检索单击的行索引,并获取该行的图像URL。由于您说您正在点击该行,因此可以使用类似于以下方法的方法完成此操作
private void ListViewEmployeeDetails_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
DataRow row = (DataRow)sender; //Get the row that was clicked
string imageURL = row["imageUrl"].ToString();//Get the img URL for that row
ImageSource imageSource = new BitmapImage(new Uri(imageURL));
image1.Source = imageSource;
}
希望这有帮助
答案 1 :(得分:0)
假设:
您可以按如下方式设置事件处理程序中的图像:
private void ListViewEmployeeDetails_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var viewItem = sender as ListViewItem;
if(viewItem!=null)
{
var elephant = viewItem.DataContext as Elephant;
image1.Source = elephant.Picture;
}
}
请注意,只接受对ListViewItem的双击。
上面的代码假设elephant.Picture是ImageSource类型。如果它是其他东西你将不得不转换它。例如,如果Elephant具有字符串“PicturePath”属性,则image1.Source行将更改为:
image1.Source = new BitmapImage(new Uri(elephant.PicturePath));