using System.ComponentModel;
public class Fields : INotifyPropertyChnged
public DateTime DataCreation {get; set;} = DateTime.Now;
private bool _TaskDescription;
public bool TaskDescription
get {return _TaskDescription;}
set {_TaskDescription = value;}
using System.ComponentModel;
public partial class MainWindow : Window
private BindingList<TodoModel> _Data;
private void Window_Loaded(object sender, RoutedEventArgs e)
_Data = new BindingList<Fields>()
new Fields(){Text = "test1"},
new Fields(){Text = "test2", IsDone = true}
dgTodoList.ItemSource = _Data;
_Data.ListChanged += _Data_ListChanged
private void_Data_ListChanged(object sender, _Data_ListChangedEventArgs e)
<DataGrid x:Name="dgTodoList" FontSize="16" FontWeigth="Bold" Margin="10" AutoGenerateColumns="false">
<DataGridTextColumn Binding="{Binding Path=CreationDate}" IsReadOnly="True" Header="CreationDate" Width="180"/>
<DataGridCheckBoxColumn Binding="{Binding Path=IsDone}" IsReadOnly="False" Header="Done" Width="80"/>
<DataGridTextColumn Binding="{Binding Path=TaskDescription}" IsReadOnly="False" Header="Task" Width="*"/>