diff --git a/src/vaadin-dropdown-menu.html b/src/vaadin-dropdown-menu.html
index c07d56cb..ad9d81d8 100644
--- a/src/vaadin-dropdown-menu.html
+++ b/src/vaadin-dropdown-menu.html
@@ -370,6 +370,15 @@
const template = this.querySelector('template');
this._overlayElement.template = template;
if (this._overlayElement.content) {
+ const origForwardHostProp = this._overlayElement._instance && this._overlayElement._instance.forwardHostProp;
+
+ this._overlayElement._instance.forwardHostProp = (...args) => {
+ origForwardHostProp.apply(this._overlayElement._instance, args);
+ setTimeout(() => {
+ this._updateValueSlot();
+ });
+ };
+
this._menuElement = Array.from(this._overlayElement.content.children).filter(element => element.localName !== 'style')[0];
if (this._menuElement) {
diff --git a/test/dropdown-menu-test.html b/test/dropdown-menu-test.html
index f65cfe6b..033f0189 100644
--- a/test/dropdown-menu-test.html
+++ b/test/dropdown-menu-test.html
@@ -235,6 +235,16 @@
expect(menu.items[0].textContent.trim()).to.equal('foo');
});
+ it('dropdown-menu should update selected item on host property changes', done => {
+ container.message = 'foo';
+ menu.selected = 0;
+ container.message = 'bar';
+ setTimeout(() => {
+ expect(dropdown._inputElement.querySelector('mock-item').textContent.trim()).to.equal('bar');
+ done();
+ });
+ });
+
it('dropdown-menu should support two-way data binding', () => {
const input = menu.items[1].querySelector('input');
input.value = 'bar';
diff --git a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/android.png b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/android.png
index d2f7c573..adf01957 100644
Binary files a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/android.png and b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/android.png differ
diff --git a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/chrome.png b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/chrome.png
index 7f679786..2f5b0dd8 100644
Binary files a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/chrome.png and b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/chrome.png differ
diff --git a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/edge.png b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/edge.png
index 19551e35..400c4015 100644
Binary files a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/edge.png and b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/edge.png differ
diff --git a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/firefox.png b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/firefox.png
index 74e47c27..90154c3c 100644
Binary files a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/firefox.png and b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/firefox.png differ
diff --git a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/ie.png b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/ie.png
index 019a44fe..46fed598 100644
Binary files a/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/ie.png and b/test/visual/screens/vaadin-dropdown-menu/default-tests/dropdown-menu/ie.png differ