C# WPF—尝试创建绑定到数据源的多选表时使用Datagrid、ListView或Listbox
我是WPF的新手,我正在尝试重新创建这样的设计: 我需要的特性是:能够多选一行(因此右边的复选框),能够绑定到数据源并加载数据。最后,在某些行上包含一个小图标的功能C# WPF—尝试创建绑定到数据源的多选表时使用Datagrid、ListView或Listbox,c#,wpf,xaml,C#,Wpf,Xaml,我是WPF的新手,我正在尝试重新创建这样的设计: 我需要的特性是:能够多选一行(因此右边的复选框),能够绑定到数据源并加载数据。最后,在某些行上包含一个小图标的功能 在谷歌搜索之后,我发现了ListView、ListBox和DataGrid控件,但它们似乎都可以做一些事情,但不是我所需要的全部。有人能告诉我哪种方法是最好的吗?我个人更喜欢使用DataGrid进行类似的操作。它们非常灵活,一旦你习惯了,就很容易使用。基于您的问题,我假设您对WPF中的绑定有一点了解。假设您的类实现了iNotify
在谷歌搜索之后,我发现了ListView、ListBox和DataGrid控件,但它们似乎都可以做一些事情,但不是我所需要的全部。有人能告诉我哪种方法是最好的吗?我个人更喜欢使用
DataGrid
进行类似的操作。它们非常灵活,一旦你习惯了,就很容易使用。基于您的问题,我假设您对WPF中的绑定有一点了解。假设您的类实现了iNotifyPropertyChanged
aDataGrid
,那么它应该可以很好地为您工作。在下面的示例中,您必须根据类属性名更改绑定
此示例没有使用内置的DataGridCheckBoxColumn
,因为它往往会出现问题(即,在单击它之前需要先聚焦)。这也将使您了解如何实现图标列。您可以通过按住控件并抓取不同的行来进行多行选择,也可以使用复选框将它们绑定到类中的属性,以便以后访问
<DataGrid Name="dataGrid" AutoGenerateColumns="False" SelectionMode="Extended">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Select, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Name" MinWidth="150" SortMemberPath="Name" Binding="{Binding Name}" IsReadOnly="True"/>
<DataGridTextColumn Header="University" Binding="{Binding University}" IsReadOnly="True"/>
<DataGridTextColumn Header="Age" Binding="{Binding Age}" IsReadOnly="True"/>
</DataGrid.Columns>
</DataGrid>
希望这能让你从正确的方向开始。这正是我需要的。非常感谢。