使用字符串 oder 列表<string>设置函数之间的区别



我更改了程序中的数据结构。我想要一个列表而不是一个字符串。现在我在设置功能方面遇到了一些麻烦。这是旧代码

    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,因为它是用户列表。

最新更新