Kivy ObjectProperty para atualizar o texto do rótulo

Estou trabalhando na criação de uma interface de usuário kivy para exibir os valores gerados por um modelo de dados que escrevi como um objeto python padrão. Em essência, gostaria que o usuário pudesse pressionar um botão, o que alteraria o modelo de dados subjacente e os resultados dessa alteração seriam atualizados e exibidos automaticamente. Entendo que isso possa ser implementado usando propriedades kivy (neste caso, ObjectProperty).

Aqui está um exemplo de código:

import kivy
kivy.require('1.7.0')

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.properties import ObjectProperty
from kivy.lang import Builder

Builder.load_string("""
<RootWidget>:
    cols: 2
    Label:
        text: "Attribute a:"
    Label:
        text: root.data_model.a
    Label:
        text: "Attribute b:"
    Label:
        text: root.data_model.b
    Label:
        text: "Attribute c:"
    Label:
        text: root.data_model.c
    Button:
        text: "Make data_model.a longer"
        on_press: root.button_press()
    Button:
        text: "Make data_model.b shorter"
        on_press: root.button_press2()
""")


class DataModel(object):
    def __init__(self):
        self.a = 'This is a'
        self.b ='This is b'

    @property
    def c(self):
        return self.a + ' and ' + self.b

class RootWidget(GridLayout):
    data_model = ObjectProperty(DataModel())

    def button_press(self, *args):
        self.data_model.a = 'This is a and it is really long now'
        print self.data_model.c

    def button_press2(self, *args):
        self.data_model.b = 'B'
        print self.data_model.c

class TestApp(App):
    def build(self):
        return RootWidget()

app = TestApp()
app.run()

O resultado desejado é que, quando o usuário pressionar qualquer um dos botões, os rótulos serão atualizados automaticamente para mostrar as novas propriedades. Como pode ser visto pelas instruções de impressão, o data_model está sendo atualizado corretamente. No entanto, nenhum dos rótulos está sendo atualizado. Alguém pode esclarecer como fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion