小弟初学WPF一个星期,基础差不会C#,这些问题对大哥们来说虽然简单,但是对小弟来说很棘手。希望大哥们帮帮忙
1、ListView如何去掉它的列表头阿
2、怎么通过ListView得到ListViewItem,因为我要给ListViewItem添加ContextMenu菜单和MouseDoubleClick事件
3、我在PlayList_MouseDoubleClick函数里面测试了一下,我想当我双击这一行的时候,然后再添加一行,第一列显示
这样的一个图片("D:\\Logo.png")。但是他没显示出图片了,而是System.Controls.Image这样的字符串
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace MiguPlayListDemo
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent(); GridView grdvue = new GridView();
PlayList.View = grdvue; GridViewColumn col;
col = new GridViewColumn();
col.Header = "SongState";
col.Width = 50;
col.DisplayMemberBinding = new Binding("SongState");
grdvue.Columns.Add(col); col = new GridViewColumn();
col.Header = "MusicName";
col.Width = 100;
col.DisplayMemberBinding = new Binding("MusicName");
grdvue.Columns.Add(col); col = new GridViewColumn();
col.Header = "MusicPlayer";
col.Width = 100;
col.DisplayMemberBinding = new Binding("MusicPlayer");
grdvue.Columns.Add(col); col = new GridViewColumn();
col.Header = "TotalTime";
col.Width = 100;
col.DisplayMemberBinding = new Binding("TotalTime");
grdvue.Columns.Add(col); for (int i = 0; i < 10; i++)
{
SongInfo song = new SongInfo();
song.SongState = i;
song.MusicName = "my music";
song.MusicPlayer = "I";
song.TotalTime = 5;
PlayList.Items.Add(song);
//ListViewItem lvItem = new ListViewItem();
//lvItem.Content = "my music";
//PlayList.Items.Add(lvItem);
} //ContextMenu songItemMenu = new ContextMenu();
//Binding bindData = new Binding();
//bindData.Source = Resources["sampleContextMenu"];
//songItemMenu.SetBinding(Menu.ItemsSourceProperty,bindData); //for (int i = 0; i < PlayList.Items.Count; i++)
//{
// ListViewItem lvItem = (ListViewItem)(PlayList.ItemContainerGenerator.ContainerFromIndex(i)); //lvItem为null
// lvItem.MouseDoubleClick += ListViewItem_MouseDoubleClick;
// lvItem.ContextMenu = songItemMenu;
//}
} private void ListViewItem_MouseDoubleClick(object sender, RoutedEventArgs e)
{
ListViewItem lvItem = (ListViewItem)sender;
//改变被双击item的SongInfo中的SongState为一张播放的图片
//1 获取这个item关联的SongInfo //不知道如何通过lvItem得到他相关联的Song,应该和数据绑定方面有关系吧
//2 重新设置SongState为一张图片
//3 刷新这个Item 是否需要刷新
} private void PlayList_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
ListView playlist = (ListView)sender;
SongInfo songInfo = (SongInfo)playlist.SelectedItem; Image img = new Image();
img.Source = new BitmapImage(new Uri("D:\\Logo.png"));
songInfo.SongState = img;
playlist.Items.Add(songInfo);
}
}
}
1、ListView如何去掉它的列表头阿
2、怎么通过ListView得到ListViewItem,因为我要给ListViewItem添加ContextMenu菜单和MouseDoubleClick事件
3、我在PlayList_MouseDoubleClick函数里面测试了一下,我想当我双击这一行的时候,然后再添加一行,第一列显示
这样的一个图片("D:\\Logo.png")。但是他没显示出图片了,而是System.Controls.Image这样的字符串
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace MiguPlayListDemo
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent(); GridView grdvue = new GridView();
PlayList.View = grdvue; GridViewColumn col;
col = new GridViewColumn();
col.Header = "SongState";
col.Width = 50;
col.DisplayMemberBinding = new Binding("SongState");
grdvue.Columns.Add(col); col = new GridViewColumn();
col.Header = "MusicName";
col.Width = 100;
col.DisplayMemberBinding = new Binding("MusicName");
grdvue.Columns.Add(col); col = new GridViewColumn();
col.Header = "MusicPlayer";
col.Width = 100;
col.DisplayMemberBinding = new Binding("MusicPlayer");
grdvue.Columns.Add(col); col = new GridViewColumn();
col.Header = "TotalTime";
col.Width = 100;
col.DisplayMemberBinding = new Binding("TotalTime");
grdvue.Columns.Add(col); for (int i = 0; i < 10; i++)
{
SongInfo song = new SongInfo();
song.SongState = i;
song.MusicName = "my music";
song.MusicPlayer = "I";
song.TotalTime = 5;
PlayList.Items.Add(song);
//ListViewItem lvItem = new ListViewItem();
//lvItem.Content = "my music";
//PlayList.Items.Add(lvItem);
} //ContextMenu songItemMenu = new ContextMenu();
//Binding bindData = new Binding();
//bindData.Source = Resources["sampleContextMenu"];
//songItemMenu.SetBinding(Menu.ItemsSourceProperty,bindData); //for (int i = 0; i < PlayList.Items.Count; i++)
//{
// ListViewItem lvItem = (ListViewItem)(PlayList.ItemContainerGenerator.ContainerFromIndex(i)); //lvItem为null
// lvItem.MouseDoubleClick += ListViewItem_MouseDoubleClick;
// lvItem.ContextMenu = songItemMenu;
//}
} private void ListViewItem_MouseDoubleClick(object sender, RoutedEventArgs e)
{
ListViewItem lvItem = (ListViewItem)sender;
//改变被双击item的SongInfo中的SongState为一张播放的图片
//1 获取这个item关联的SongInfo //不知道如何通过lvItem得到他相关联的Song,应该和数据绑定方面有关系吧
//2 重新设置SongState为一张图片
//3 刷新这个Item 是否需要刷新
} private void PlayList_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
ListView playlist = (ListView)sender;
SongInfo songInfo = (SongInfo)playlist.SelectedItem; Image img = new Image();
img.Source = new BitmapImage(new Uri("D:\\Logo.png"));
songInfo.SongState = img;
playlist.Items.Add(songInfo);
}
}
}
Image img = new Image();
img.Source = new BitmapImage(new Uri("D:\\Logo.png"));
playlist.Items.Add(img);这样可以显示图片
那段代码没能显示出图片了,我不清楚是什么原因,因为刚学嘛 很多概念都不清楚 哪位好心人帮我看看 需要源代码的话 留言哈
img.Source = new BitmapImage(new Uri("D:\\Logo.png"));
playlist.Items.Add(img);
这段不行????我这可以呀