Instead of using a state variable to jog around and check what is the state of a window, why not just use an infinite collection?
public partial class Admin : Window { private IEnumerator _toggler; public Admin() { InitializeComponent(); _toggler = Toggler().GetEnumerator(); } public void Toggle() { _toggler.MoveNext(); } private IEnumerable Toggler() { while (true) { Show(); yield return new object(); Hide(); yield return new object(); } } }
I wonder if this is a good pattern, or just me being "clever".