Davi, utilize a classe ObservableCollection. Vou dar exemplos relativos à sua tela:
// propriedade da classe
public ObservableCollection<Item> Itens {get;private set;}
//no construtor
Itens = new ObservableCollection<Item>();
//em algum lugar buscando do banco:
Itens.Clear();
foreach(var item in banco.ListarItens())
Itens.Add(item);
//no botão Inserir:
var item = new Item();
//preenche propriedades
Itens.Add(item);
//atualiza a soma:
txtSoma.Text = Itens.Sum(i => i.Valor).ToString();
Agora o vc precisa fazer é um Binding dessa propriedade Itens no DataGrid, lá no XAML, por exemplo:
<DataGrid ItemsSource="{Binding Itens, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
Take a look at WPF FlashMessage
About.me