Refactor select binding to avoid infinite recursion when updating