У меня есть ListView на форме, встроенной в PowerShell, которую я просто не могу отсортировать.ListView Sort не работает OnClick (PowerShell)
Если я вызываю $ LV.Sort() из командной строки (пока форма не показана), она работает отлично. Однако, если я попытаюсь называть его в событии OnClick ни на чем на форме, это не так. Я ввел флаги, и я знаю, что этот раздел кода запущен, он просто ничего не делает или не помещает никаких ошибок.
Очевидно, что $LV.Sorting = "Ascending"
установлен, иначе он не будет сортироваться вообще, и я могу изменить элементы, чтобы ссылка на ListView была в порядке. Также попытался вызвать в случае проблемы с потоками, но не отличается.
Раздражающе это сложный предмет исследования из-за того, что многие люди забывают установить свойство Сортировка.
EDIT: Не уверен, если это необходимо, но форма вызываются с ShowDialog()
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()
$form = New-Object System.Windows.Forms.Form
$LVserverlist = New-Object System.Windows.Forms.ListView
$form.Controls.Add($LVserverlist)
$LVserverlist.Dock = "Fill"
$LVserverlist.View = "Details"
$LVserverlist.Sorting = "Ascending"
$LVserverlist.Add_ColumnClick({ $LVserverlist.sort(); $LVserverlist.Items[0].Text = "Working?" })
$LVserverlist.Columns.Add("Name", 200, "Left") | Out-Null
0..10 | Foreach-Object {
$LVItem = New-Object System.Windows.Forms.ListViewItem
$LVItem.Text = (Get-Random -Maximum 1000).ToString()
$LVserverlist.Items.Add($LVItem) | Out-Null
}
$form.ShowDialog()
Может быть проблемой обзорной. Пожалуйста, покажите нам свой код –
У меня около тысячи строк кода. Все, что имеет значение, - это то, что ListView находится в Splitter в Splitter внутри формы, который отображается с помощью ShowDialog(). Если я добавлю 'Sort()' в любое событие OnClick, он ничего не делает, но остальная часть кода в событии отлично работает. Не имеет значения, передаю ли ListView в качестве параметра или использую глобальную ссылку, я могу добавить и изменить элементы в нем. –
Приготовьте небольшое приложение, которое воспроизводит ошибку, и опубликуйте это :) (см. Раздел 'MVCE' Справочного центра] (http://stackoverflow.com/help/mcve). –