XAML - 隐藏时折叠网格

时间:2017-06-16 04:15:11

标签: xaml xamarin xamarin.forms

我正在使用Xamarin Forms创建一个应用程序。我的<Grid / >里面有一个<Image/>。即使没有图像存储在图像中,图像也是200px高。如果<Image/>标签中没有存储图像,如何将此网格折叠为0px?

<Grid x:Name="createGrid">
  <Grid.RowDefinitions>
    <RowDefinition Height="200"/>
  </Grid.RowDefinitions>
  <Image x:Name="Main Image" Grid.Row="0"/>
</Grid>

1 个答案:

答案 0 :(得分:3)

创建如下所示的视图模型

    public class ViewModel
    {
        ImageSource imagePath;
        public ImageSource ImagePath
        {
           get { return imagePath;}
           set
            {
                imagePath = value;
                if (imagePath != null)
                {
                    GridSize = 100;
                }
                else
                {
                    GridSize = 0;
                }

            }
        }

        public int GridSize { get; set; }

    }

在页面

中将此模型设置为Binding上下文
ViewModel _MyModel = new ViewModel() {  };
BindingContext = _MyModel;
InitializeComponent();

在Xaml页面中绑定模型

<Grid HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="{Binding GridSize}" WidthRequest="{Binding GridSize}" >
   <Image Source="{Binding ImagePath}"/>
</Grid>