3 回答
TA贡献1784条经验 获得超8个赞
只需使用下面的行
<ListView ItemsSource="{Binding items}" SelectionChanged="lvUsers_SelectionChanged" Margin="10" Name="lvUsers">
TA贡献1827条经验 获得超4个赞
我自己并没有经常使用 WPF,但是对可以解决您的问题的方法进行了疯狂的猜测:
替换这一行:
DataContext = items;
用这一行:
DataContext = this;
您想将 DataContext 绑定到一个类,而不是一个特定的集合(我可能会创建一个单独的类,称为沿着 MainWindowViewModel 的一些东西,但一次只做一件事)。
然后在 ListView 的第一个标签中:
<ListView ItemsSource="{Binding Name}" SelectionChanged="lvUsers_SelectionChanged" Margin="10" Name="lvUsers">
用这一行替换它:
<ListView ItemsSource="{Binding items}" SelectionChanged="lvUsers_SelectionChanged" Margin="10" Name="lvUsers">
您希望 ItemsSource 是集合的名称,而不是您实际想要从该集合中使用的名称。
这意味着您可以稍后在 ListView 中使用 set 绑定来访问集合属性:
{Binding Name} , {Binding Age} , {Binding Mail}
TA贡献1786条经验 获得超11个赞
因此,更改 xaml 代码以使您的代码正常工作:
<ListView ItemsSource="{Binding }" SelectionChanged="lvUsers_SelectionChanged" Margin="10" Name="lvUsers">
<ListView.View>
<GridView>
<GridViewColumn Header="Name"
DisplayMemberBinding="{Binding Name}" Width="120"/>
<GridViewColumn Header="Age"
DisplayMemberBinding="{Binding Age}" Width="50"/>
<GridViewColumn Header="Mail"
DisplayMemberBinding="{Binding Mail}" Width="150"/>
</GridView>
</ListView.View>
</ListView>
这些都是需要的改变。您可以使用 MVVM 原则对代码进行改进,以分离您的代码、Notifiable 类,以便在您从集合中添加/删除元素时更新 UI。
- 3 回答
- 0 关注
- 271 浏览
添加回答
举报