2013-01-21 63 views
0

在XAML中有可能使用DataTemplate.Triger來處理控件的外觀,但是在win8的XAML是不可用:如果值爲0,如何隱藏控件?

<DataTrigger Binding="{Binding Role.Count, Converter={StaticResource isGreaterThanZero}" Value="True"> 
    <Setter TargetName="Counts" Property="Visibility" Value="Hidden" /> 
</DataTrigger> 

如何做同樣的事情在Windows 8 XAML?

回答

0

如果您查看網格和拆分佈局的默認Visual Studio模板,您會發現一個值轉換器的例子,它根據布爾值設置控件的可見性。該代碼在這裏

public sealed class BooleanToVisibilityConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, string language) 
     { 
      return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, string language) 
     { 
      return value is Visibility && (Visibility)value == Visibility.Visible; 
     } 
    } 

顯示所有你需要的就是複製這些代碼並修改它來設置基於一個整數值visibility屬性 - IntToVisibilityConverter,例如。你會在你想要受影響的控制器上使用這樣的轉換器

Visibility="{Binding IsActive, Converter={StaticResource IntToVisibilityConverter}}"