Вам на самом деле все равно, скрыт или не свернут элемент, - вам просто интересно убедиться, что он еще не виден, прежде чем сделать его видимым .Проверьте это:
private void MenuItem_Check(MenuItem item){
// if item is not already visible, make it visible
if (item.Visibility != Visibility.Visible)
item.Visibility=Visibility.Visible;
}
Это дает дополнительное преимущество, позволяя вашему коду продолжать работать, когда константа Visibility.OnlyWithXRayGoggles
добавляется к перечислению Visibility в .NET 6.0.
(Как уже указывалось в других ответах, нет веских причин для преобразования значения в строку - вы можете сравнить непосредственно с самими константами перечисления)