Почему SelectedIndices и SelectedItems не работают, когда ListView инстанцируют в модульном тесте?

Вы можете проанализировать ваш '2019-01-17T21:00:00.000Z' вход, используя moment.utc() , поскольку он представляет время в UTC

По умолчанию, момент анализируется и отображается по местному времени.

Если вы хотите проанализировать или отобразить момент в UTC, вы можете использовать moment.utc() вместо moment().

blockquote>

и затем преобразуйте его в местный часовой пояс, используя local() .

Здесь живой образец:

const stringValue = '2019-01-17T21:00:00.000Z';
let date = moment.utc(stringValue).local();
console.log("date", date.format('DD/MM/YYYY HH:mm:ss'));

5
задан Fionnuala 26 November 2008 в 00:15
поделиться

2 ответа

Проблема, кажется, что SelectedIndices и SelectedItems не обновляют правильно, если ListView не был привлечен, как указан в этом комментарии из документации MSDN ListViewItem. Свойство Selected:

Свойству Selected нельзя доверять, если Ваш ListView никогда не привлекался (например, именно в TabControl, на вкладке еще не был выбран). В этом случае SelectedItems и SelectedIndices родительского ListView правильно не обновляются и все еще будут пусты.

Одно решение этой проблемы состоит в том, чтобы создать простой фиктивный класс формы в Вашем тесте, добавить ListView к форме и просто показать форму. После этого свойства SelectedIndices и SelectedItems работают как ожидалось.

Что-то вроде этого:

    [Test]
    public void CanGetSelectedItems()
    {
        // simple test to make sure that the SelectedIndices
        // property is updated
        using (var f = new DummyForm(listView))
        {
            f.Show();

            listView.SelectedIndices.Add(0);
            Assert.AreEqual(1, listView.SelectedIndices.Count);
        }
    }

    private class DummyForm : Form
    {
        public DummyForm(ListView listView)
        {
            // Minimize and make it not appear in taskbar to
            // avoid flicker etc when running the tests
            this.WindowState = FormWindowState.Minimized;
            this.ShowInTaskbar = false;
            this.Controls.Add(listView);
        }
    }
7
ответ дан 18 December 2019 в 09:54
поделиться

Я нашел прием, который можно использовать для заполнения тех свойств:

listView. AccessibilityObject. ToString ();//обходное решение для получения selecteditems обновленных свойств

8
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: