While I can't be 100% certain based on the code you've shown it's probably because the "selected" item isn't actually a member of the "conditions" collection.
Because you're using a separate object to track which of the collection is selected you'll need to find the equivalent item in the collection and delete that instead. (You can't remove an item from a collection which isn't in the collection in the first place. Even if they are represented in the same way on screen.)
Try something like this.
foreach(var item in conditions)
{
if(item.Equals(selectedCondition))
{
conditions.Remove(item);
}
}
(Make sure Equals
is suitably capable of correctly determining the correct instance in the collection.)