WPF DataGrid绑定到List <type>

时间:2015-10-02 09:09:30

标签: c# wpf datagrid

我尝试将WPF DataGrid绑定到List<ClassName>

以下是我的DataGrid

<DataGrid ItemsSource="{Binding Source=FileProcessing}" AutoGenerateColumns="True"></DataGrid>

下面我将列表与数据库记录绑定在一起:

FileProcessing =  GetFileProcessingInfo(dtDateStart, dtDateEnd);

FileProcessing被定义为以下属性:

public List<FileProcessing_T> FileProcessing { get; set; }

GetFileProcessingInfo方法还会返回List<FileProcessing_T>个对象。

FileProcessing列表确实从数据库中获取了一些记录,但网格没有绑定列表中的数据。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以保留数据绑定。

但是你必须在INotfifyPropertyChanged属性所在的类中实现FileProcessing接口。 因为在FileProcessing的设置者中,您必须执行更改通知。

    public ObservableCollection<FileProcessing_T> FileProcessing 
    {
        get
        {
            return _fileProcessing;
        }
        set
        {
            if (_fileProcessing != value)
            {
                _fileProcessing = value;
                RaisePropertyChanged("FileProcessing");
            }
        }
    }
    ObservableCollection<FileProcessing_T> _fileProcessing;


    public event PropertyChangedEventHandler PropertyChanged = delegate { };

    public void RaisePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

否则UI控件将不知道(未通知)绑定数据已更改。


这足以解决您的问题。 如果您继续使用List<FileProcessing_T>而不是ObservableCollection<FileProcessing_T>,它甚至可以使用,但如果在ObservableCollection期间添加单个元素并从集合中删除,List也支持更改通知不