public int Compare(object a, object b)
            {
                try
                {
                    var a1 = a as ListViewItem;
                    var b1 = b as ListViewItem;
                    var a2 = a1.Content as ChatEventDisplayInfo;
                    var b2 = b1.Content as ChatEventDisplayInfo;
                    var x  = Ascending ? a2 : b2;
                    var y  = Ascending ? b2 : a2;

                    switch (_propertyName)
                    {
                    case "GameStateIndex":
                        return(x.GameStateIndex.CompareTo(y.GameStateIndex));

                    case "Time":
                        return(App.CompareTimeStrings(y.Time, x.Time));

                    case "TeamMessage":
                        return(x.TeamMessage.CompareTo(y.TeamMessage));

                    case "Player":
                        return(y.Player.CompareTo(x.Player));

                    case "Message":
                        return(y.Message.CompareTo(x.Message));

                    default:
                        return(0);
                    }
                }
                catch (Exception)
                {
                    return(0);
                }
            }