如何在 WPF 中将项目绑定到 Listview

对不起,我的英语不好。这是我的问题:

我的 Listview,我想你看到了我的问题:

http://img.mukewang.com/6187bc5100015b3b02980171.jpg

这是我的代码:


<ListView ItemsSource="{Binding Name}" SelectionChanged="lvUsers_SelectionChanged" Margin="10" Name="lvUsers">

        <ListView.View>

            <GridView>

                <GridViewColumn Header="Name" Width="120"/>

                <GridViewColumn Header="Age" Width="50"/>

                <GridViewColumn Header="Mail" Width="150"/>

            </GridView>

        </ListView.View>

    </ListView>

这是c#代码:


public partial class MainWindow : Window

{

    List<User> items = new List<User>();

    public MainWindow()

    {

        InitializeComponent();

        items.Add(new User() { Name = "John Doe", Age = 42, Mail = "john@doe-family.com" });

        items.Add(new User() { Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" });

        items.Add(new User() { Name = "Sammy Doe", Age = 7, Mail = "sammy.doe@gmail.com" });

        DataContext = items;

    }

}


public class User

{

    public string Name { get; set; }


    public int Age { get; set; }


    public string Mail { get; set; }

}

我想将列表项绑定到我的列表视图。


谢谢您的帮助!


弑天下
浏览 283回答 3
3回答

青春有我

只需使用下面的行<ListView&nbsp;ItemsSource="{Binding&nbsp;items}"&nbsp;SelectionChanged="lvUsers_SelectionChanged"&nbsp;Margin="10"&nbsp;Name="lvUsers">

GCT1015

我自己并没有经常使用 WPF,但是对可以解决您的问题的方法进行了疯狂的猜测:替换这一行:DataContext&nbsp;=&nbsp;items;用这一行:DataContext&nbsp;=&nbsp;this;您想将 DataContext 绑定到一个类,而不是一个特定的集合(我可能会创建一个单独的类,称为沿着 MainWindowViewModel 的一些东西,但一次只做一件事)。然后在 ListView 的第一个标签中:<ListView&nbsp;ItemsSource="{Binding&nbsp;Name}"&nbsp;SelectionChanged="lvUsers_SelectionChanged"&nbsp;Margin="10"&nbsp;Name="lvUsers">用这一行替换它:<ListView&nbsp;ItemsSource="{Binding&nbsp;items}"&nbsp;SelectionChanged="lvUsers_SelectionChanged"&nbsp;Margin="10"&nbsp;Name="lvUsers">您希望 ItemsSource 是集合的名称,而不是您实际想要从该集合中使用的名称。这意味着您可以稍后在 ListView 中使用 set 绑定来访问集合属性:{Binding&nbsp;Name}&nbsp;,&nbsp;{Binding&nbsp;Age}&nbsp;,&nbsp;{Binding&nbsp;Mail}

Qyouu

因此,更改 xaml 代码以使您的代码正常工作:<ListView ItemsSource="{Binding }" SelectionChanged="lvUsers_SelectionChanged" Margin="10" Name="lvUsers">&nbsp; &nbsp; <ListView.View>&nbsp; &nbsp; &nbsp; &nbsp; <GridView>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <GridViewColumn Header="Name"&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DisplayMemberBinding="{Binding Name}" Width="120"/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <GridViewColumn Header="Age"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DisplayMemberBinding="{Binding Age}" Width="50"/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <GridViewColumn Header="Mail"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DisplayMemberBinding="{Binding Mail}" Width="150"/>&nbsp; &nbsp; &nbsp; &nbsp; </GridView>&nbsp; &nbsp; </ListView.View></ListView>这些都是需要的改变。您可以使用 MVVM 原则对代码进行改进,以分离您的代码、Notifiable 类,以便在您从集合中添加/删除元素时更新 UI。
打开App,查看更多内容
随时随地看视频慕课网APP