C.K.
I made my house a "no whine zone". When my son started whining I told him he had to go outside to do it. He could come back in when he was ready to talk instead of whine. Since it's no fun to whine outside alone, he stopped. Breaking the whining habit at home caused him to not whine when we were away from home too.
If you cannot send her outside alone then designate a room as the "whine room". Not her room though because that has things to play with. Pick a room that is not fun like the laundry room. When she whines tell her to go in that room. She can come back when she's ready to talk.