### Godot version

v4.0.stable.official [92bee43ad]

### System information

Windows 10, 64bit

### Issue description

When change `ItemList`‘s icon_scale with code, itemlist not update:
![GIF](https://user-images.githubusercontent.com/35988767/222378909-ff9828aa-6714-478a-abbe-55477f28d85d.gif)

And force call `queue_redraw()`, icon size was udpate, but item border not.
![GIF](https://user-images.githubusercontent.com/35988767/222379478-832c7668-5182-4e1e-bfdb-cc137c19f77a.gif)

And if resize window, itemlist update correct.
![GIF](https://user-images.githubusercontent.com/35988767/222381049-3a45383d-9a40-4598-b64d-ec10d22754d7.gif)


### Steps to reproduce

/

### Minimal reproduction project

[ItemListTest.zip](https://github.com/godotengine/godot/files/10869385/ItemListTest.zip)

bool disabled = arr[i + 2];
			int idx = get_item_count();
			add_item(text, icon);
			set_item_disabled(idx, disabled);
		}
	}
#endif
	return false;
}
bool ItemList::_get(const StringName &p_name, Variant &r_ret) const {
	Vector<String> components = String(p_name).split("/", true, 2);
	if (components.size() >= 2 && components[0].begins_with("item_") && components[0].trim_prefix("item_").is_valid_int()) {
		int item_index = components[0].trim_prefix("item_").to_int();
		if (components[1] == "text") {
			r_ret = get_item_text(item_index);
			return true;
		} else if (components[1] == "icon") {
			r_ret = get_item_icon(item_index);
			return true;
		} else if (components[1] == "disabled") {
			r_ret = is_item_disabled(item_index);
			return true;
		} else if (components[1] == "selectable") {
			r_ret = is_item_selectable(item_index);
			return true;
		}
	}
	return false;
}
void ItemList::_get_property_list(List<PropertyInfo> *p_list) const {