Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
C# 动态更改WPF中栅格的可见性_C#_Wpf_Silverlight_Windows Phone 8_Visibility - Fatal编程技术网

C# 动态更改WPF中栅格的可见性

C# 动态更改WPF中栅格的可见性,c#,wpf,silverlight,windows-phone-8,visibility,C#,Wpf,Silverlight,Windows Phone 8,Visibility,我有一个带有文本块的网格: 现在这里myObject.Title可能为Null或空,有时我需要隐藏整个网格 如何实现此目的?在文本块上设置x:Name。然后,当文本在TextBlock上设置为null或空字符串时,在网格样式上应用dataTriggers以折叠可见性 <Grid xmlns:sys="clr-namespace:System;assembly=mscorlib" x:Name="GridLayout" Margin="4,0,4,1" Grid.

我有一个带有文本块的网格:

现在这里myObject.Title可能为Null或空,有时我需要隐藏整个网格

如何实现此目的?

在文本块上设置x:Name。然后,当文本在TextBlock上设置为null或空字符串时,在网格样式上应用dataTriggers以折叠可见性

    <Grid xmlns:sys="clr-namespace:System;assembly=mscorlib"
          x:Name="GridLayout" Margin="4,0,4,1" Grid.Row="2" Background="#accdd7">
        <Grid.RowDefinitions>
           <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="Title" 
                   Grid.Row="0"
                   HorizontalAlignment="Stretch"
                   Padding="10,2,10,2"
                   Style="{StaticResource PromptTextStyle}"/>
        <Grid.Style>
            <Style TargetType="Grid">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Text, ElementName=Title}"
                                 Value="{x:Null}">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Text, ElementName=Title}" 
                                 Value="{x:Static sys:String.Empty}">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Grid.Style>
    </Grid>
在TextBlock上设置x:Name。然后,当文本在TextBlock上设置为null或空字符串时,在网格样式上应用dataTriggers以折叠可见性

    <Grid xmlns:sys="clr-namespace:System;assembly=mscorlib"
          x:Name="GridLayout" Margin="4,0,4,1" Grid.Row="2" Background="#accdd7">
        <Grid.RowDefinitions>
           <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="Title" 
                   Grid.Row="0"
                   HorizontalAlignment="Stretch"
                   Padding="10,2,10,2"
                   Style="{StaticResource PromptTextStyle}"/>
        <Grid.Style>
            <Style TargetType="Grid">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Text, ElementName=Title}"
                                 Value="{x:Null}">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Text, ElementName=Title}" 
                                 Value="{x:Static sys:String.Empty}">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Grid.Style>
    </Grid>

以上答案是否适用于Windows Phone 7

我自己解决了

我是这样做的


在Xaml中,默认情况下使网格项的可见性折叠,现在在代码中检查myObject.Title是否为null。如果不为空,则将网格可见性设置为可见。

以上答案是否适用于Windows Phone 7

我自己解决了

我是这样做的


在Xaml中,默认情况下使网格项的可见性折叠,现在在代码中检查myObject.Title是否为null。如果不为空,则将网格可见性设置为可见。

在代码隐藏中尝试此操作

if(string.IsNullOrEmpty(myObject.Title))
{
GridLayout.Visibility = Visibility.Collapsed;
Title.Text=string.Empty;
}
else
{
Title.Text = myObject.Title;
GridLayout.Visibility = Visibility.Visible;
}

试试这个,在代码隐藏中

if(string.IsNullOrEmpty(myObject.Title))
{
GridLayout.Visibility = Visibility.Collapsed;
Title.Text=string.Empty;
}
else
{
Title.Text = myObject.Title;
GridLayout.Visibility = Visibility.Visible;
}

你是说我只需要在我的xml文件中添加这个吗?像我在上面的示例中所做的那样,给你的文本块指定x:Name。另外,请确保在网格标记下添加sys名称空间和应用样式。对不起,我没有理解您的意思。您能告诉我如何处理我的代码吗?我已经更新了答案。用上面发布的xaml替换您的xaml。它说触发器无法识别或访问,我正在使用Windows phone 8应用程序。您的意思是我只需要将其添加到我的xml文件中吗?像上面的示例一样,为您的文本块指定x:名称。另外,请确保在网格标记下添加sys名称空间和应用样式。对不起,我没有理解您的意思。您能告诉我如何处理我的代码吗?我已经更新了答案。用上面发布的xaml替换你的xaml。它说触发器无法识别或访问,我正在使用Windows phone 8应用程序我需要xml解析方面的帮助你能帮我吗?我需要xml解析方面的帮助你能帮我吗?谢谢我做到了,我需要你的帮助请看这里谢谢我做到了,我需要你的帮助请看这里