Yes, there are better approaches. It’s a designer smell to make a class have a member that shouldn’t be there, that is, in your words: "When using DrawItem in DetailsState nothing happens except return."
In addition, you can use the MVP pattern, which will allow you to significantly increase the degree of verification. With a passive change in MVP, you will have one model, two mute views and a presenter who decides which view to display depending on the user's choice.
MVP:
SO MVP
MVP Windows Forms