/// <summary>
        /// Binds the dialog to a user.
        /// </summary>
        /// <param name="grant">The privilege grant to bind to.</param>
        public void BindToGrant(string username, InfluxDbGrant grant)
        {
            if (string.IsNullOrWhiteSpace(username))
            {
                throw new ArgumentNullException("username");
            }
            if (grant == null)
            {
                throw new ArgumentNullException("grant");
            }

            // Bind user details
            Username = usernameValue.Text = username;
            Database = databaseValue.Text = grant.Database;

            for (var i = 0; i < privilegeComboBox.Items.Count; i++)
            {
                var p = (InfluxDbPrivileges)privilegeComboBox.Items[i];

                if (p == grant.Privilege)
                {
                    privilegeComboBox.SelectedIndex = i;
                    break;
                }
            }
        }
        // Handle change to selected privilege
        private void grantsListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            var selectedItem = grantsListView.SelectedItems.Count > 0 ? grantsListView.SelectedItems[0] : null;

            if (selectedItem == null)
            {
                SelectedPrivilegeGrant = null;
            }
            else
            {
                SelectedPrivilegeGrant = selectedItem.Tag as InfluxDbGrant;
            }

            // Update interface buttons
            UpdateUIState();
        }
        // Handle changes to the selected user
        private async void usersListView_SelectedIndexChanged(object sender, EventArgs e)
        {
            var selectedItem = usersListView.SelectedItems.Count > 0 ? usersListView.SelectedItems[0] : null;

            if (selectedItem == null)
            {
                SelectedUser = null;

                // Clear grants
                SelectedPrivilegeGrant = null;
                grantsListView.BeginUpdate();
                grantsListView.Items.Clear();
                grantsListView.EndUpdate();
            }
            else
            {
                SelectedUser = selectedItem.Tag as InfluxDbUser;
                await BindToPrivileges(SelectedUser);
            }

            // Update interface buttons
            UpdateUIState();
        }