我正在尝试验证是否在复选框中选择了属于 Enum 列表的项目。我正在尝试这样的事情:if (CrystalsHeldBox2.SelectedItem == Player.CrystalsHeld.Find(item => item == Player.Crystals.Ayanlune))它是一个类的一部分,如下所示:[JsonProperty("CrystalsHeld")]public List<Crystals> CrystalsHeld { get; set; }[JsonProperty("RV")]public List<string> RV { get; set; }public Player(){ Inventory = new List<Item>(); CrystalsHeld = new List<Crystals>(); RV = new List<string>();}public enum Crystals : int{ Ayanlune = 1}基本上我想做这样的事情:如果Ayanlune Crystal 在显示所有玩家CrystalsHeld 的列表框中,那么是真的。任何帮助,将不胜感激。
3 回答
浮云间
TA贡献1829条经验 获得超4个赞
所以!我想到了!我需要做等于:
if (CrystalsHeldBox2.SelectedItem.Equals(Player.Crystals.Ayanlune))
{
AddInline("This is the right object!");
}
回首忆惘然
TA贡献1847条经验 获得超11个赞
我认为您不需要为此使用 LINQ。一个简单的List<T>.Contains
应该做:
if (Player.CrystalsHeld.Contains((Crystals) CrystalsHeldBox2.SelectedItem))
慕的地8271018
TA贡献1796条经验 获得超4个赞
CrystalsHeld是List,不是ListBox。AListBox是 UI 控件,而 aList是 C# 集合。
您可以检查 a 是否List包含这样的对象:
if (CrystalsHeld.Contains(CrystalsHeldBox2.SelectedItem))
{
// Do Stuff
}
如果它实际上是 a ListBox,则该控件具有一个Items属性,其中包含ListBox. 您可以在后面的代码中访问它,例如:
if (CrystalsHeld.Items.Contains(CrystalsHeldBox2.SelectedItem))
{
// Do Stuff
}
或者,如果您使用的是 MVVM,则可以将控件的Items属性绑定到 ViewModel 中的属性,等等。
- 3 回答
- 0 关注
- 209 浏览
添加回答
举报
0/150
提交
取消