Тип системы видимости в C # - PullRequest
1 голос
/ 22 ноября 2010

Я новичок в языке программирования C #.Моя проблема заключается в написании метода, который использует атрибут item.Visibility и проверку видимости.Псевдокод этого:


private void MenuItem_Check(MenuItem item){
     if ((item.Visibility.ToString()=="Hidden") ||(item.Visibility.ToString()=="Collapsed") )
     item.Visibility=Visibility.Visible;
}


Мои наилучшие пожелания и заранее спасибо.

Ответы [ 3 ]

8 голосов
/ 22 ноября 2010

Вам на самом деле все равно, скрыт или не свернут элемент, - вам просто интересно убедиться, что он еще не виден, прежде чем сделать его видимым .Проверьте это:

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.

(Как уже указывалось в других ответах, нет веских причин для преобразования значения в строку - вы можете сравнить непосредственно с самими константами перечисления)

3 голосов
/ 22 ноября 2010

Нет необходимости в ToString() .. Visibility - это перечисление ...

private void MenuItem_Check(MenuItem item){
     if (item.Visibility == Visiblity.Hidden || item.Visibility == Visiblity.Collapsed)
        item.Visibility=Visibility.Visible;
}
0 голосов
/ 22 ноября 2010
private void MenuItem_Check(MenuItem item)
{
     if ((item.Visibility == Visibility.Hidden) || 
         (item.Visibility == Visibility.Collapsed))
     {
         item.Visibility = Visibility.Visible;
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...