我正在关注msdn数据模板概述http://msdn.microsoft.com/en-us/library/ms742521.aspx
但我觉得他们错过了对他们拥有的something..for资源的解释:
<Window.Resources><local:Tasks x:Key="myTodoList"/></Window.Resources>而他们在XAML中所拥有的是
<ListBox Width="400" Margin="10"
ItemsSource="{Binding Source={StaticResource myTodoList}}"/>在不显示C#代码的情况下,它们能够在ListBox中显示项目列表。ListBox没有x:Name,并且我不能在MainWindow中添加项,并且使用单独的类Tasks,我执行了以下操作(这不起作用)
using System.Collections; // use ArrayList
using System.Collections.ObjectModel; // use Observable Collection
namespace FooApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
public class Tasks : ObservableCollection<Tasks>
{
string TaskName;
string Description;
int Priority;
public TasksStuff(string taskName, string description, int priority)
{
this.taskName = TaskName;
this.description = Description;
this.priority = Priority;
}
public string TaskName
{get{return this.taskName}}
public string Description
{get{return this.description}}
public string Priority
{get{return this.priority}}
private ArrayList Tasks
{
ArrayList taskList = new ArrayList();
taskList.Add( new TasksStuff("A foo task", "doing foo",1));
return taskList;
}
}
}我真的很困惑。
发布于 2010-12-15 23:06:39
这应该是Tasks的定义,您的示例才能正常工作:
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));
}
}https://stackoverflow.com/questions/4451171
复制相似问题