当前位置: 首页 > 编程语言 > C#

使用ProgrammaticSorting绑定DataGridView的SortableBindingList分享

时间:2023-04-10 22:45:06 C#

使用ProgrammaticSorting绑定DataGridView的SortableBindingList在.aspx上实现了SortableSearchableList类,并为其添加了一个Sort方法,如下:publicvoidSort(PropertyDescriptorprop,ListSortDirectiondirection){ApplySortCore(prop,direction);DataGridView在排序时工作,但我需要能够以编程方式调用指定列的Sort方法(在本例中使用sortButton控件)。我在网上找到的几个代码示例建议获取列的PropertyDescriptor并将其传递给ApplySortCore方法。我还没有那份工作。我可以获取DataGridView或SortableSearchableList的PropertyDescriptorCollection属性,但我似乎无法获取Find方法来获取指定列/成员的PropertyDescriptor。这是我的其余代码:namespaceSortableBindingListTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();alarms.Add(newTags("sometext","1"));alarms.Add(newTags("moretext","2"));alarms.Add(newTags("另一个","3"));dataGridView1.AutoGenerateColumns=false;dataGridView1.AllowUserToAddRows=true;dataGridView1.EditMode=DataGridViewEditMode.EditOnEnter;dataGridView1.RowHeadersVisible=false;dataGridView1.AutoSizeColumnsMode=System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;DataGridViewTextBoxColumnalarmColumn=newDataGridViewTextBoxColumn();alarmColumn.DataPropertyName="报警";alarmColumn.Name="报警";alarmColumn.HeaderText="报警";DataGridViewTextBoxColumnmessageColumn=newDataGridViewTextBoxColumn();messageColumn.DataPropertyName="消息";messageColumn.Name="消息";messageColumn.HeaderText="消息";dataGridView1.Columns.Add(alarmColumn);dataGridView1.Columns.Add(messageColumn);dataGridView1.DataSource=警报;}privatevoidsortButton_Click(objectsender,EventArgse){//尝试获取BindingListPropertyDescriptorCollection的属性listProperties=TypeDescriptor.GetProperties(alarms);PropertyDescriptoralarmProp=listProperties.Find("Alarm",false);//此时prop为null,因此下一行失败alarms.Sort(alarmProp,ListSortDirection.Ascending);//尝试获取DataGridView列的属性PropertyDescriptorCollectiondgvProperties=TypeDescriptor.GetProperties(dataGridView1);PropertyDescriptorcolumnProp=dgvProperties.Find("Alarm",false);//此时columnProp为null,所以下一行也失败alarms.Sort(columnProp,ListSortDirection.Ascending);}}公共类标签:INotifyPropertyChanged{privatestring_alarm;私有字符串_message;公共事件PropertyChangedEventHandlerPropertyChanged;p公共标签(字符串警报,字符串消息){_alarm=alarm;_message=消息;}publicstringAlarm{get{return_alarm;}设置{_alarm=值;这。NotifyPropertyChanged("警报");}}publicstringMessage{get{return_message;}设置{_message=值;this.NotifyPropertyChanged("消息");}}privatevoidNotifyPropertyChanged(stringname){if(PropertyChanged!=null)PropertyChanged(this,newPropertyChangedEventArgs(name));任何帮助将不胜感激试试上面这个是C#学习教程:SortableBindingListboundtoDataGridViewUsingProgrammaticSorting我分享的所有内容,如果对你有用并且需要了解更多关于C#学习教程,希望大家多多关注—dataGridView1.Sort(dataGridView.Columns[0],ListSortDirection.Ascending);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: