c# - 为什么observablecollection初始化为null?

标签 c#

我用这个构造函数来初始化这个对象

 ObservableCollection<MyHomeworkModel> allTabs = new ObservableCollection<MyHomeworkModel>();

原来allTabs初始化后为null。因此,我无法向其中添加 MyHomeworkModel 对象。

请帮助我并提前致谢。

using System.Windows.Input;
using System.Collections.ObjectModel;
using MyHomework;

namespace MyHomework__MVVM_
{
    class MyHomeworkViewModel
    {
        private ObservableCollection<MyHomeworkModel> allTabs;
        private MyHomeworkModel selectedTab;

        public MyHomeworkViewModel()
        {
            ObservableCollection<MyHomeworkModel> allTabs = new ObservableCollection<MyHomeworkModel>();
            selectedTab = new MyHomeworkModel();
            AddCourseCommand = new AddCourseCommand(this);
        }

        public ObservableCollection<MyHomeworkModel> AllTabs
        {
            get
            {
                return allTabs;
            }
            set
            {
                allTabs = value;
            }
        }

        public MyHomeworkModel SelectedTab
        {
            get
            {
                return selectedTab;
            }
            set
            {
                selectedTab = value;
            }
        }

        public ICommand AddCourseCommand
        {
            get;
            private set;
        }

        public void AddNewTab()
        {
            NewCourseName ncn = new NewCourseName();
            ncn.ShowDialog();
            if (ncn.courseName != null)
            {
                MyHomeworkModel newTab = new MyHomeworkModel();
                newTab.Header = ncn.courseName;
                AllTabs.Add(newTab);
            }
        }
    }
}

最佳答案

此处(在 MyHomeworkViewModel 的构造函数中):

ObservableCollection<MyHomeworkModel> allTabs = new ObservableCollection<MyHomeworkModel>();

您创建了一个局部变量来隐藏类成员,因此它在构造函数调用后保持为空。为避免这种情况,只需跳过语句开头的类型:

allTabs = new ObservableCollection<MyHomeworkModel>();

关于c# - 为什么observablecollection初始化为null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14402133/

相关文章:

c# - 将括号添加到文本框值

c# - Geckodriver 0.16.0 使用 flash 播放器启动 firefox

c# - 我正在尝试创建 GOST 3410 公钥。 CKR ATTRIBUTE_TYPE INVALID 异常

c# - 在 C# 中如何获取以 Unicode 格式打印的 char 的最小值和最大值?

c# - 禁用 CheckboxList 中的特定项目

c# - 使用 UDP 协议(protocol)将 C Sharp 中的文件从计算机发送到另一台计算机

c# - 字符串中只允许单一类型的标记

C# - 检查列表是否包含属性等于值的对象?

c# - 在 VS 2005 中如何为 web.config 生成连接字符串?

c# - 自定义指标控件