Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 8.1 使用样式条件隐藏WinRT/XAML控件-可能吗?_Windows Phone 8.1_Winrt Xaml_Hide - Fatal编程技术网

Windows phone 8.1 使用样式条件隐藏WinRT/XAML控件-可能吗?

Windows phone 8.1 使用样式条件隐藏WinRT/XAML控件-可能吗?,windows-phone-8.1,winrt-xaml,hide,Windows Phone 8.1,Winrt Xaml,Hide,在我的WinRT/Phone 8.1应用程序中,我有一个表格,其中有许多网格s(用作包装器),每个表格包含两个或多个文本块s。我只想显示可用的数据,这意味着如果特定网格的TextBlock内容为空,我想隐藏整个网格 例如:' <Grid x:Name="NameSection"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition

在我的WinRT/Phone 8.1应用程序中,我有一个表格,其中有许多
网格
s(用作包装器),每个表格包含两个或多个
文本块
s。我只想显示可用的数据,这意味着如果特定
网格的
TextBlock
内容为空,我想隐藏整个
网格

例如:'

<Grid x:Name="NameSection">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0"
               x:Name="NameLabel"
               Text="Name:" />
    <TextBlock Grid.Row="1"
               x:Name="Name"
               Text="{Binding Name}" />
</Grid>

如果名称
TextBlock
为空,则应折叠整个
网格的可见性

将此逻辑添加到代码隐藏或(更糟的是)
ViewModel
可能会让这个长表单变得混乱,因此我想知道是否可以使用XAML和样式实现这一点。如何在WinRT中完成?我是否可以设置网格的样式,使其可见性基于其中一个子视图中的内容?

转换器

公共类NullToVisibilityConverter:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、字符串语言)
{
返回值==null?可见性。折叠:可见性。可见;
}
公共对象转换回(对象值、类型targetType、对象参数、字符串语言)
{
抛出新的NotImplementedException();
}
}
然后像这样使用它

<Grid x:Name="NameSection" Visibility={Binding Name, Converter={StaticResource MyNullConverter}}>

编辑: 如果还想检查空字符串,可以添加string.IsNullOrEmpty(值为string)而不是value==null