我有一個Listview資料源在哪里List<T>,當內容List<T>發生變化時我必須重繪 ,Listview然后選擇我之前選擇的專案來重繪 Listview。這是我運行不佳的代碼。
if (cbGroups.SelectedIndex!=-1)
{
_GroupSelected = (Groups)cbGroups.SelectedValue;
}
_ItemSource = true;
// Refresh data source with the new records readed.
cbGroups.ItemsSource = Groups_DB.Records;
_ItemSource = false;
if (cbGroups.Items.Count >= 0 && _GroupSelected != null)
{
_ItemSource = true;
cbGroups.SelectedValue = _GroupSelected;
int x = cbGroups.Items.IndexOf(_GroupSelected); // x is always -1
_ItemSource = false;
}
那么,有人可以幫助我嗎?
uj5u.com熱心網友回復:
很明顯,舊_GroupSelected專案不是新ItemsSource集合的元素。
看看這些屬性是如何協同作業SelectValue的。SelectedValuePath然后使用適當的“鍵”屬性恢復選擇作為SelectedValue.
假設一條記錄有一個唯一的Id屬性,設定
<ListView x:Name="cbGroups" SelectedValuePath="Id" ...>
后面有這樣的代碼:
var selectedId = cbGroups.SelectedValue;
cbGroups.ItemsSource = Groups_DB.Records;
cbGroups.SelectedValue = selectedId;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/516414.html
