using System.ComponentModel; using Caliburn.Metadata; using Caliburn.Presenters; namespace Samples.TodoListModule { [DefaultView(Type = typeof(TodoView))] public class TodoPresenter : HostedPresenter { private Todo _todo; public Todo Todo { get { return _todo; } set { _todo = value; _todo.PropertyChanged += Todo_PropertyChanged; } } public string Name { get { return _todo.Name; } } private void Todo_PropertyChanged(object sender, PropertyChangedEventArgs e) { OnPropertyChanged(e.PropertyName); } public override bool Equals(object obj) { TodoPresenter other = obj as TodoPresenter; if (other != null) return other.Todo.Id == Todo.Id; else return false; } } }