2012-10-25 5 views
2

WPF를 사용하고 있습니다.레이블이 비어 있지 않을 때 버튼 숨기기

레이블이 비어 있지 않으면 버튼을 표시하고 싶습니다. Label에 값이 있으면 버튼이 숨겨집니다.

WPF로 어떻게 할 수 있습니까? <Style>을 사용 하시겠습니까?

코드 :

<Label Name="lblCustomerName"/> 
<Button Name="btnCustomer" Content="X" Visibility="Hidden" /> 

답변

1

보십시오.

public class ContentNullToVisibilityConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     if (value == null) 
     { 
      return Visibility.Hidden; 
     } 
     return Visibility.Visible; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

변환기에 대한 추가 정보 here.

첫 번째 줄은 당신이 위의 클래스를 생성하는 네임 스페이스로 자격을해야합니다 자원에 정의되어야합니다 :

그런 다음 XAML에서 다음을 수행 할 수 있습니다. 리소스를 정의하고 나면 두 번째 부분을 사용할 수 있습니다.

<ContentNullToVisibilityConverter x:Key="visConverter"/> 

<Label Name="lblCustomerName"/> 
<Button Name="btnCustomer" Content="X" Visibility="{Binding ElementName=lblCustomer, Path=Content, Converter={StaticResource visConverter}}" /> 
2

당신은 변환기를 사용하고 lblCustomer의 내용에 바인딩해야합니다

 

if (string.IsNullOrEmpty(lblCustomerName.Text)) { 
    btnCustomer.Visibility = Visibility.Hidden; 
} 
else { 
    btnCustomer.Visibility = Visibility.Visible; 
}

+0

예,이 방법은 작동하지만 wpf에서 동적으로 수행하는 방법입니다. –

관련 문제