为什么我的数据绑定会写出Length属性?

所以我设置了一个viewmodel,它将ObservableCollection绑定到我的DataGrid。

它打印出的值很好,但它也打印出属性的长度? 我不记得有任何约束力。 它为什么这样做?

视觉表示它的外观

我的MainWindow.cs

 public MainWindow() { InitializeComponent(); DataContext = new MasterViewModel(); } 

MasterViewModel.cs

 class MasterViewModel { public Users Users { get; } = new Users(); public Achievements Achievements { get; } = new Achievements(); } 

Users.cs

 class Users : INotifyPropertyChanged { public Users() { newList.Add("Hello there"); } private ObservableCollection newList = new ObservableCollection(); public ObservableCollection NewList { get { return newList; } set { newList = value; } } public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged(string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } 

XAML

            

DataGrid具有属性AutoGenerateColumns ,默认情况下设置为True ,并使DataGrid为items中定义的每个属性创建一列。

DataGrid绑定到NewList ,其中包含具有Length属性的string类型的项。 所以它使得Length

您可以通过设置来禁用自动生成

我忘了添加属性AutoGenerateColumns="False" 。 不知道为什么它默认设置为true或为什么它会选择所有属性的length属性但我想我已修复它。