在此代码的“if”行中有一个断点:
if ((ckbx.Content != null) && (!ckbx.Content.ToString().Contains("(Empty list)")))
{
string groupName = ckbx.Content.ToString();
var contextMenu = new PopupMenu();
contextMenu.Commands.Add(new UICommand("Edit this Group", contextMenuCmd => Frame.Navigate
(typeof(LocationGroupCreator), groupName)));
contextMenu.Commands.Add(new UICommand("Delete this Group", async (contextMenuCmd) =>
{
await SQLiteUtils.DeleteGroupAsync(groupName);
}));
await contextMenu.ShowAsync(args.GetPosition(this));
}
... ckbx.Content是“(空列表)”,但条件被视为假 - 条件失败。为什么呢?
答案 0 :(得分:3)
... ckbx.Content是“(空列表)”,但条件被视为假 - 条件失败。为什么呢?
您的情况有logical negation operator(!
)否定Contains
的结果:
(!ckbx.Content.ToString().Contains("(Empty list)"))
因此,如果内容包含“(空列表)”,则Contains
将返回true
,而!
将使其成为false
,这会使条件成为{1}}失败。
答案 1 :(得分:2)
(ckbx.Content != null)
是真的
(!ckbx.Content.ToString().Contains("(Empty list)")
是假的 - 你只是说它是空列表......并且这检查是不是空列表(感谢前面的“!” - “!”表示NOT)
true&&假,当然等于假