diff --git a/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp b/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp
index ad65bccdfd8d5b70a1d530ac44909fc3ea083d8b..eb9ad087de2ef7be68a150bb794fc00037be420e 100644
--- a/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp
+++ b/src/plugins/qmldesigner/core/instances/qmlgraphicsitemnodeinstance.cpp
@@ -98,7 +98,8 @@ QSizeF QmlGraphicsItemNodeInstance::size() const
         double implicitWidth = qmlGraphicsItem()->implicitWidth();
         if (!m_hasWidth
             && implicitWidth // WORKAROUND
-            && implicitWidth != qmlGraphicsItem()->width()) {
+            && implicitWidth != qmlGraphicsItem()->width()
+            && !modelNode().hasBindingProperty("width")) {
             qmlGraphicsItem()->blockSignals(true);
             qmlGraphicsItem()->setWidth(implicitWidth);
             qmlGraphicsItem()->blockSignals(false);
@@ -107,7 +108,8 @@ QSizeF QmlGraphicsItemNodeInstance::size() const
         double implicitHeight = qmlGraphicsItem()->implicitHeight();
         if (!m_hasHeight
             && implicitWidth // WORKAROUND
-            && implicitHeight != qmlGraphicsItem()->height()) {
+            && implicitHeight != qmlGraphicsItem()->height()
+            && !modelNode().hasBindingProperty("height")) {
             qmlGraphicsItem()->blockSignals(true);
             qmlGraphicsItem()->setHeight(implicitHeight);
             qmlGraphicsItem()->blockSignals(false);
@@ -138,7 +140,8 @@ QRectF QmlGraphicsItemNodeInstance::boundingRect() const
         double implicitWidth = qmlGraphicsItem()->implicitWidth();
         if (!m_hasWidth
             && implicitWidth // WORKAROUND
-            && implicitWidth != qmlGraphicsItem()->width()) {
+            && implicitWidth != qmlGraphicsItem()->width()
+            && !modelNode().hasBindingProperty("width")) {
             qmlGraphicsItem()->blockSignals(true);
             qmlGraphicsItem()->setWidth(implicitWidth);
             qmlGraphicsItem()->blockSignals(false);
@@ -147,7 +150,8 @@ QRectF QmlGraphicsItemNodeInstance::boundingRect() const
         double implicitHeight = qmlGraphicsItem()->implicitHeight();
         if (!m_hasHeight
             && implicitWidth // WORKAROUND
-            && implicitHeight != qmlGraphicsItem()->height()) {
+            && implicitHeight != qmlGraphicsItem()->height()
+            && !modelNode().hasBindingProperty("height")) {
             qmlGraphicsItem()->blockSignals(true);
             qmlGraphicsItem()->setHeight(implicitHeight);
             qmlGraphicsItem()->blockSignals(false);
@@ -215,7 +219,7 @@ void QmlGraphicsItemNodeInstance::setPropertyBinding(const QString &name, const
 
 QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const
 {
-    if (name == "width" && modelNode().isValid()) {
+    if (name == "width" && modelNode().isValid() && !modelNode().hasBindingProperty("width")) {
         double implicitWidth = qmlGraphicsItem()->implicitWidth();
         if (!m_hasWidth
             && implicitWidth // WORKAROUND
@@ -223,7 +227,7 @@ QVariant QmlGraphicsItemNodeInstance::property(const QString &name) const
             qmlGraphicsItem()->setWidth(implicitWidth);
     }
 
-    if (name == "height" && modelNode().isValid()) {
+    if (name == "height" && modelNode().isValid() && !modelNode().hasBindingProperty("height")) {
         double implicitHeight = qmlGraphicsItem()->implicitHeight();
         if (!m_hasHeight
             && implicitHeight // WORKAROUND