小弟初学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.   

    去掉 col.Header = "SongState"; 不行吗?你说的是这个表头吗?
                Image img = new Image();
                img.Source = new BitmapImage(new Uri("D:\\Logo.png"));
                
                playlist.Items.Add(img);这样可以显示图片
      

  2.   

    是要去掉他的列表头 用代码该怎么写啊 大概是要设置listview的header.visibility = false,但是不知道有没有这些
    那段代码没能显示出图片了,我不清楚是什么原因,因为刚学嘛 很多概念都不清楚 哪位好心人帮我看看 需要源代码的话 留言哈
      

  3.   

    我是说你不给GridViewColumn添加header不可以吗 Image img = new Image(); 
                img.Source = new BitmapImage(new Uri("D:\\Logo.png")); 
                
                playlist.Items.Add(img); 
    这段不行????我这可以呀
      

  4.   

    去掉 col.Header 这几句是不行的,那地方就空白了。