public MultiColumnView(IEnumerable <VersionControl.VersionControlStatus> _interrestingStatus, bool bIsCommit)
    {
        m_liItems = _interrestingStatus.ToList();


        MultiColumnHeaderState.Column[] arColumns = new MultiColumnHeaderState.Column[Enum.GetValues(typeof(Column)).Length];

        foreach (Column c in Enum.GetValues(typeof(Column)))
        {
            arColumns[(int)c] = new MultiColumnHeaderState.Column()
            {
                width         = EditorPrefs.GetFloat("VCMultiColumnState_" + c.ToString(), 50),
                headerContent = new GUIContent(c.ToString())
            };
        }

        MultiColumnHeaderState multiColumnHeaderState = new MultiColumnHeaderState(arColumns);
        MultiColumnHeader      multiColumnHeader      = new MultiColumnHeader(multiColumnHeaderState);

        multiColumnHeader.sortingChanged += onSortingChanged;

        TreeViewState state = new TreeViewState();

        m_treeView = new VCTreeView(this, state, multiColumnHeader, bIsCommit && VersionControl.VCSettings.SelectiveCommit);

        m_treeView.Reload();

        multiColumnHeader.sortedColumnIndex = EditorPrefs.GetInt("VCMultiColumnState_ColumnIndex", (int)Column.AssetPath);
        multiColumnHeader.SetSortDirection(multiColumnHeader.sortedColumnIndex, EditorPrefs.GetBool("VCMultiColumnState_Ascending", false));
        string strVisible = EditorPrefs.GetString("VCMultiColumnState_Visible", "all");

        if (strVisible != "all")
        {
            multiColumnHeader.state.visibleColumns = Array.ConvertAll(strVisible.Split('_'), x => Int32.Parse(x));
        }

        m_columnSortedBefore = (Column)multiColumnHeader.sortedColumnIndex;
    }