C# msdn数据模板概述

C# msdn数据模板概述,c#,wpf,staticresource,C#,Wpf,Staticresource,下面是msdn数据模板概述 但我觉得他们错过了一些解释..对于他们拥有的资源: <Window.Resources><local:Tasks x:Key="myTodoList"/></Window.Resources> 他们在XAML中所拥有的只是 <ListBox Width="400" Margin="10" ItemsSource="{Binding Source={StaticResource myTodoList}}

下面是msdn数据模板概述

但我觉得他们错过了一些解释..对于他们拥有的资源:

 <Window.Resources><local:Tasks x:Key="myTodoList"/></Window.Resources>

他们在XAML中所拥有的只是

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"/>

在不显示C#代码隐藏方式的情况下,他们能够在列表框中显示项目列表。ListBox没有x:Name,我无法在MainWindow中添加项,并且使用单独的类Tasks,我执行了以下操作(这不起作用)

使用System.Collections;//使用ArrayList
使用System.Collections.ObjectModel;//使用可观察集合
命名空间应用程序1
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
}
公共类任务:ObservableCollection
{
字符串TaskName;
字符串描述;
int优先级;
public taskstuff(字符串taskName、字符串描述、int优先级)
{
this.taskName=taskName;
this.description=描述;
优先权=优先权;
}
公共字符串任务名
{get{返回this.taskName}}
公共字符串描述
{get{返回this.description}}
公共字符串优先级
{获取{返回此.优先级}
私有ArrayList任务
{
ArrayList taskList=新建ArrayList();
添加(newtaskstuff(“一个foo任务”,“做foo”,1));
返回任务列表;
}
}
}

我真的很困惑

这应该是
任务的定义
,您的示例才能正常工作:

public class Tasks : ObservableCollection<Task /*or whatever type you want to use here*/>
{
    //...
}
公共类任务:ObservableCollection
{
//...
}
--编辑--

//这是一个用于存储单个任务信息的类
//它与任务集合无关
公开课任务
{
私有字符串_taskName;
公共字符串任务名
{
获取{return\u taskName;}
设置{u taskName=value;}
}
私有字符串描述;
公共字符串描述
{
获取{return\u description;}
设置{u description=value;}
}
私有Int32_优先级;
公共Int32优先级
{
获取{return\u priority;}
设置{u priority=value;}
}
公共任务(字符串任务名、字符串描述、Int32优先级)
{
this.TaskName=TaskName;
这个。描述=描述;
这个。优先级=优先级;
}
}
//这是一个任务类型集合的类
//因为它继承自ObservableCollection,所以它本身就是一个集合
//无需在内部声明/创建ArrayList。
//严格来说,永远不要使用ArrayList。它已过时且不是强类型的。
//使用列表、ObservableCollection等代替。
//在System.Collections.Generic命名空间中查找更多泛型集合
公共类任务:ObservableCollection
{
公共任务()
{
添加(新任务(“一个foo任务”,“做foo”,1));
}
}

我无法创建数据列表。请添加到ArrayList类。我应该如何添加到数组中?我已经用完整的代码编辑了我的问题。我到处都有错误,只是连续14个小时不知道它是如何工作的…我试图寻找教程,但这就是我在教程中遇到的没有解决方案的地方。。。
public class Tasks : ObservableCollection<Task /*or whatever type you want to use here*/>
{
    //...
}
// This is a class to store information for a single task
// It has nothing to do with a collection of tasks
public class Task
{
    private String _taskName;
    public String TaskName
    {
        get { return _taskName; }
        set { _taskName = value; }
    }

    private String _description;
    public String Description
    {
        get { return _description; }
        set { _description = value; }
    }

    private Int32 _priority;
    public Int32 Priority
    {
        get { return _priority; }
        set { _priority = value; }
    }

    public Task(String taskName, String description, Int32 priority)
    {
        this.TaskName = taskName;
        this.Description = description;
        this.Priority = priority;
    }
}

// This is a class that is a collection of Task types
// Since it inherits from ObservableCollection, it is itself a collection
// There is no need to declare/create an ArrayList inside.
// And on a strict note, do not ever use ArrayList. It is obsolete and not strongly typed.
// Use List<T>, ObservableCollection<T>, etc. instead.
// Look for more Generic Collections in System.Collections.Generic namespace
public class Tasks : ObservableCollection<Task>
{
    public Tasks()
    {
        Add(new Task("A foo task", "doing foo", 1));
    }
}