[英]Listbox Selected Item is always null after an update in the list box in wpf
在我的WPF应用程序中,我有一个列表框,其中包含正在播放的测验比赛列表。 每次我/任何其他对手创造比赛时,都会重新加载列表。
当前场景:我正在玩比赛,我的当前比赛会根据其ID突出显示。 在玩自己的游戏时,其他人向我发送了邀请,它会自动刷新列表,并且所选项目变为空。 它会影响当前正在播放的比赛。
除非用户单击其他匹配项,否则我需要selectedItem是相同的。 因此,我将ID保留在变量中,甚至在重新加载列表之后,也要使用该旧ID来选择该项目。
List<ChallengePlayerLists> ChallengerLists;
var filteredlistfortest2 = ChallengerList.Where(x => x.challengeID == Convert.ToString(challengeID) && (x.challengeStatus == "Your turn")).ToList().FirstOrDefault();
lstChallengeGrid.SelectedItem = ChallengerList.Where(x => x.challengeID == Convert.ToString(challengeID) && (x.challengeStatus == "Your turn")).ToList().FirstOrDefault();
public class ChallengePlayerLists
{
public string challengeID { get; set; }
public string challengeType { get; set; }
public string challengerID { get; set; }
public string opponentID { get; set; }
public string fullName { get; set; }
public string userName { get; set; }
public string challengeStatus { get; set; }
}
第一行代码按预期工作,我可以使用LINQ查询获得要选择的匹配项。 但是,在将其分配给listbox.SelectedItem
它仍然为NULL。
我不确定为什么将相同的LINQ分配给selectedItem
时为null。
如果要更改绑定到ListBox的列表,则将使SelectedItem
无效。 您将需要存储一种查找当前选定项目的方法-它是ID或唯一代码,然后在列表更新后重新选择它:
int selectedItemId = SelectedItem.Id;
ChallengerLists = updatedList;
SelectedItem = ChallengerLists.FirstOrDefault(i => i.Id == selectedItemId);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.