我想在ListView中获取SelectedItems值,但是它不起作用!

选择一个项目时我没有问题,但是我想在扩展模式下工作,以便显示任何选定的项目。

我的代码是:

    List<Fnamelist> familylist = new List<Fnamelist>();
    public class Fnamelist
    {

        public Fnamelist(string fname)
        {
            this.Fname = fname;

        }
        private string fname = string.Empty;
        public string Fname
        {
            get { return fname; }
            set { fname = value; }
        }

    }


    private void button1_Click(object sender, RoutedEventArgs e)
    {

       MessageBox.Show(((Fnamelist)listView1.SelectedItems).Fname.ToString());
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        familylist.Add(new Fnamelist("mike"));
        familylist.Add(new Fnamelist("john"));
        familylist.Add(new Fnamelist("melon"));
        familylist.Add(new Fnamelist("bab"));
        listView1.ItemsSource = familylist;
        listView1.Items.Refresh();
    }


xaml:

    <Button Content="show" Height="23" HorizontalAlignment="Left" Margin="331,79,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    <ListView Height="129" HorizontalAlignment="Left" Margin="20,23,0,0" Name="listView1" VerticalAlignment="Top" Width="291">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="FirstName" DisplayMemberBinding="{Binding Path=Fname}"/>
            </GridView>
        </ListView.View>
    </ListView>


当我单击显示按钮时,出现错误:

Unable to cast object of type 'System.Windows.Controls.SelectedItemCollection' to type 'Fnamelist'.

有什么问题 ?

最佳答案

button1_Click事件处理程序中的代码试图显示单个项目的Fname,其中listView1.SelectedItems是项目的集合。

您可以显示第一个选定的项目:

MessageBox.Show(((Fnamelist)listView1.SelectedItems[0]).Fname);


或迭代选定的项目集合并在内部执行任何您想做的事情,例如MessageBox

foreach (var item in listview1.SelectedItems)
{
      string fname = ((Fnamelist)item).Fname;
      MessageBox.Show(fname);
}


在旁注中,您可以删除ToString()呼叫。因为Fname已经是字符串,所以它是多余的。

关于c# - 从selecteditems获取值(value)的麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19211678/

10-09 23:24