2010-11-22 2 views
1

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

 

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

 

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

+0

@Martin Liversage: Извините за неправильный код и спасибо за коррекция. – scratmiller 2010-11-22 18:36:44

ответ

8

Вы действительно не волнует ли не скрыта или свернуты деталь - вы просто заинтересованы в проверке что он еще не виден перед вами сделать это видно. Так проверьте, что:

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 enumeration в .NET 6.0.

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

+0

Продолжайте, удалите инструкцию if(). – 2010-11-22 18:42:21

3

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

private void MenuItem_Check(MenuItem item){ 
    if (item.Visibility == Visiblity.Hidden || item.Visibility == Visiblity.Collapsed) 
     item.Visibility=Visibility.Visible; 
} 
0
private void MenuItem_Check(MenuItem item) 
{ 
    if ((item.Visibility == Visibility.Hidden) || 
     (item.Visibility == Visibility.Collapsed)) 
    { 
     item.Visibility = Visibility.Visible; 
    } 
} 
Смежные вопросы