-1

在此代码的“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 是“(空列表)”,但条件被视为错误 - 条件失败。为什么?

4

2 回答 2

3

...ckbx.Content 是“(空列表)”,但条件被视为错误 - 条件失败。为什么?

您的条件具有逻辑否定运算符( !) 否定结果Contains

 (!ckbx.Content.ToString().Contains("(Empty list)"))

因此,如果内容中包含“(Empty list)”,Contains将返回true,并且!将使其成为false,这使得条件失败。

于 2013-01-22T20:04:40.597 回答
2

(ckbx.Content != null)是真的

(!ckbx.Content.ToString().Contains("(Empty list)")是错误的 - 你刚刚说它是空列表......并且这会检查这不是空列表(感谢前面的“!” - “!”表示不是)。

true && false 当然等于 false

于 2013-01-22T20:05:45.220 回答