我更改了程序中的数据结构。我想要一个列表而不是一个字符串。现在我在设置功能方面遇到了一些麻烦。这是旧代码
private string user;
public string User
{
get { return user; }
set
{
user = value;
Notify("user");
}
}
我不知道如何管理用户=价值;这是我的尝试:
private List<string> user;
public List<string> User
{
get { return user; }
set
{
user.Add(value);
Notify("user");
}
}
它会引发错误,因为值是列表,无法添加到列表中。
编辑:对不起,这是一个复制和粘贴错误。我通过此编辑更改了旧代码。
因此,我想做的是将列表绑定到数据网格的列。上面的代码是数据类的一部分。
这是窗口中的代码.xaml
<DataGridTextColumn Header = "user" Binding="{Binding Path=User, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" MinWidth="50" />
示例中,value
与属性 List<string>
的类型相同。所以你不能使用user.Add(value)
.相反,您可以编写:
private List<string> user = new List<string>();
public List<string> User
{
get { return user; }
set
{
user = value;
Notify("user");
}
}
但是,如果您使用绑定Users
到 DataGrid,那么最好使用实现INotifyPropertyChanged
的集合,如 ObservableCollection<T>
。这样,当在集合中添加/删除项或刷新整个集合时,将通知视图 (DataGrid)。
private ObservableCollection<string> user = new ObservableCollection<string>();
public ObservableCollection<string> User
{
get { return user; }
set
{
user = value;
Notify("user");
}
}
有关将ObservableCollection
绑定到 DataGrid 的详细信息,请查看本文。
顺便说一下,我认为该属性最好命名Users
而不是User
,因为它是用户列表。