コード例 #1
0
        private async Task <Account> ConnectAccountAsync(string name, TreeNode node)
        {
            if (loadingNodes.Contains(node))
            {
                return(null);
            }
            var nodeImageKey = node.ImageKey;

            loadingNodes.Add(node);
            try
            {
                var ret = await accountManager.CreateAccountAsync(name);

                ret.Tag = node;
                accounts.Add(name, ret);
                node.ImageKey         = AccountImageKey;
                node.SelectedImageKey = AccountImageKey;
                var info = (NodeInfo)node.Tag;
                info.File = ret.RootFolder;
                return(ret);
            }
            catch (Exception)
            {
                node.ImageKey         = nodeImageKey;
                node.SelectedImageKey = nodeImageKey;
                throw;
            }
            finally
            {
                loadingNodes.Remove(node);
                UpdateToolBarAndMenu();
            }
        }