首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未调用对象的属性集

未调用对象的属性集
EN

Stack Overflow用户
提问于 2013-08-09 07:09:44
回答 1查看 451关注 0票数 2

我会感谢一些帮助,这必须是一个基本的语言问题,但我找不到答案。这是一个Windows8商店应用程序,但可以是任何C# XAML。我有一个包含两个项目的clsRecord (如下):我的问题是SET only get的名称被调用。不会为对象NumQuestions调用它。我部分地理解这是因为调用函数通过GET获取对对象的引用。解决这个问题的正确方法是什么,这样它也会调用SET?谢谢你的帮助。

公共类UserRecord : INotifyPropertyChanged

代码语言:javascript
运行
复制
{
    public UserRecord()
    {
        _NumQuestions = new Collection<int>();
    }
    private string _Name;
    public string Name
    {
        get
        {
            return _Name;
        }
        set
        {
            if (value != _Name)
            {
                _Name = value;
                NotifyPropertyChanged("Name");
            }
        }
    }
    private Collection<int> _NumQuestions;
    public Collection<int> NumQuestions
    {
        get
        {
            return _NumQuestions;
        }
        set  // this never gets called
        {
            if (value != _NumQuestions)
            {
                _NumQuestions = value;
                NotifyPropertyChanged("NumQuestions");
            }
        }
    }
   etc with the notify ...

让另一个类创建上述内容的列表

代码语言:javascript
运行
复制
public class UserRecords : INotifyPropertyChanged
{
    public ObservableCollection<UserRecord> List {  get; set; }
    public UserRecords()
    {
        List = new ObservableCollection<UserRecord>();
    }
    public void ClearCurrentUserScore()
    {
        int i;
        for (i = 0; i < List[CurrentUserIndex].NumQuestions.Count; i++)
        {
            List[CurrentUserIndex].NumQuestions[i] = i; // only GET is called
            List[CurrentUserIndex].Name = "X";  // SET is called as expected
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2013-08-09 07:12:27

在第一种情况下,List[CurrentUserIndex].NumQuestions返回Collection<int>的一个实例。这意味着[i]表达式绑定的是Collection<int>,而不是UserRecord类型。因此,set永远不会被调用,因为集合实际上出现在Collection<int>的索引器中。

您应该使用ObservableCollection<int>而不是Collection<int>。另外,删除set方法,只提供一个get

代码语言:javascript
运行
复制
private ObservableCollection<int> _NumQuestions;
public ObservableCollection<int> NumQuestions
{
    get
    {
        return _NumQuestions;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18137748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档