당신은 사용하여 다음을
[ValueConversion(typeof(Object), typeof(Visibility))]
public class NullVisibilityConv : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null) return Visibility.Collapsed;
else return Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}
당신은 다음 컨트롤에 바인딩 할 수있는 다음과 같은 컨버터를 사용할 수 있습니다 xaml
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Style="{StaticResource LinkButton}" Height="23" Content="{Binding Path=Title}"
Visibility="{Binding FileAddress, Converter={StaticResource NullToVisConverter}}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
또한 변환기를 xa 어딘가에 리소스로 선언해야합니다. ml의
<converters:NullVisibilityConv x:Key="NullToVisConverter" />
이 방법의 장점은 당신이 당신의 코드에서 컨버터를 선언 후에는 다음 당신의 가시성이 변환기를 사용, 트리거 또는 다른 복잡한 코드를 추가하지 않고 다른 바인딩에 다시 재사용 할 수 있다는 것입니다 그것은 나를위한 가장 간단한 이후
바인딩 나는 사용자 정의 컨트롤로 갔다. 원래는 트리거를 시도했지만 'else'사례를 수행하는 방법을 파악할 수 없었습니다. – tzerb
트리거가 다른 것을 허용하지 않습니다. 당신은에 따라 로직을 수행해야합니다 정상 상태! 내용 = 널 다른 주 (트리거) : 콘텐츠 == 널 (null)입니다. 모든 설정자 가시성 또는 스타일 변경이 트리거 됨 트리거가 원래 상태로 돌아가는 것이 현명하다는 것을 기억하십시오. –