2013-08-21 3 views
0

Я пытаюсь сохранить ListView выбранный элемент, и я не знаю, почему я получаю эту ошибку:Как сохранить ListView выбранного пункта

"Cannot implicitly convert type 'int' to 'System.Windows.Forms.ListView.SelectedListViewItemCollection'"

Я попробовал этот код на кнопке сохранения:

Settings.Default["SelectedDevice"] = sourceList.SelectedItems; //Works fine 

на Form_Load Я попытался это:

sourceList.SelectedItems = (int)Settings.Default["SelectedDevice"]; //error 
+2

Почему вы пытаетесь бросить SelectedListViewItemCollection в целое? –

+0

Какая ценность? – ORION

+0

это не работает ни: sourceList.SelectedItems = Settings.Default ["SelectedItem"]; – ORION

ответ

1

Я сделал небольшое приложение, где я прочитал выбранный элемент из настроек. Код для выбора пункта в OnLoad-Event является:

private void OnLoad(object sender, EventArgs eventArgs) 
{ 
    int selectedItem = Properties.Settings.Default.SelectedItem; 
    if (selectedItem != -1) 
    { 
     this.listView1.Items[selectedItem].Selected = true; 
    } 
    } 

Default-Value моих настроек -1

+1

Благодарим за помощь, она отлично работает. – ORION

0

Прежде всего SelectedItems является readonly Свойство не может быть установлено. Во-вторых, это SelectedListViewItemCollection не int.

Если вы пытаетесь сохранить выбранные индексы элементов в списке вы должны сделать что-то вдоль линий:

// store CSV list of indices 
Settings.Default["SelectedItems"] = String.Join(",", listView.SelectedIndices.Select(x => x)); 
... 
// load selected indices 
var selectedIndices = ((string)Settings.Default["SelectedItems]).Split(','); 
foreach (var index in selectedIndices) 
{ 
    listView.Items[Int32.Parse(index)].Selected = true; 
} 
+0

Так что нет способа его сохранить? – ORION

+0

Я пробовал это, и он не работает: sourceList.SelectedItems = Settings.Default ["SelectedDevice"]; – ORION

+0

@ORION Как я уже сказал, коды никогда не будут работать, потому что 'SelectedItems' ** читается только **. См. Мое обновление для более надежного решения. – James

Смежные вопросы