KeePass.UI.AsyncPwListUpdate.SetItemText C# (CSharp) Method

SetItemText() private static method

private static SetItemText ( string strText, LviUpdInfo lui ) : void
strText string
lui LviUpdInfo
return void
        private static void SetItemText(string strText, LviUpdInfo lui)
        {
            try // Avoid cross-thread exceptions
            {
                long lTargetID = lui.ListItem.ListViewItemID;
                int iIndexHint = lui.IndexHint;

                lock(lui.ListEditSyncObject)
                {
                    ListView.ListViewItemCollection lvic = lui.ListView.Items;
                    int nCount = lvic.Count;

                    // for(int i = 0; i < nCount; ++i)
                    for(int i = nCount; i > 0; --i)
                    {
                        int j = ((iIndexHint + i) % nCount);
                        ListViewItem lvi = lvic[j];

                        PwListItem li = (lvi.Tag as PwListItem);
                        if(li == null) { Debug.Assert(false); continue; }

                        if(li.ListViewItemID != lTargetID) continue;

                        lvi.SubItems[lui.SubItem].Text = strText;
                        break;
                    }
                }
            }
            catch(Exception) { Debug.Assert(false); }
        }