Xamarin.Forms StackLayout IsVisible在Android上不起作用

时间:2017-11-05 22:38:25

标签: c# android listview xamarin.forms

我有以下问题:IsVisible绑定不起作用,stacklayout仍然可见,我不知道如何以正确的方式做到这一点。我已将IsVisible添加到列表中,并且所有列表都已消失。我想只有StackLayout显示是否选择了列表项。当然,除了公共新bool等我还有其余的代码与InitializeComponent();等

代码背后:

public partial class MainPage : ContentPage, ISwipeCallBack
{
    private bool _isVisible = false;
    public new bool IsVisible
    {
        get => _isVisible;
        set => Set(ref _isVisible, value);
    }

    private object Set(ref bool isVisible, bool value)
    {
        throw new NotImplementedException();
    }
}

private void ChallengeList_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
      //  if (e.SelectedItem == null)
     //       return;
        if (e.SelectedItem is MainPage viewModel)
        {
            viewModel.IsVisible = true;
        }

     //   ChallengeList.SelectedItem = null;
}     

XAML:

<ListView x:Name="ChallengeList" SeparatorColor="#3d122c" HasUnevenRows="True"
            ItemSelected="ChallengeList_ItemSelected"  RelativeLayout.YConstraint="{ConstraintExpression ElementName=Lab, Constant=0,Factor=1,Property=Height,Type=RelativeToView}"
      RelativeLayout.HeightConstraint="{ConstraintExpression Property=Height,Factor=0.8,Type=RelativeToParent}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Horizontal"  BackgroundColor="#40FFFFFF" Padding="10">
                            <StackLayout HorizontalOptions="CenterAndExpand">
                                <Label Text="{Binding Title}" TextColor="#ff3f50" FontSize="17" FontAttributes="Bold" HorizontalOptions="Center"/>
                                <StackLayout HorizontalOptions="CenterAndExpand" IsVisible="{Binding IsVisible}" x:Name="More" Padding="5">
                                    <Label Text="sdfghjkhgfdsfghjkljhgfdsadfghjkljhgfdsaSDFGHJKJHGFDSAsdfghjkhgfds" TextColor="#ff3f50" FontSize="17" FontAttributes="Bold" HorizontalOptions="Center"
                                           LineBreakMode="WordWrap"/>
                                </StackLayout>
                            </StackLayout>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
  </ListView>

0 个答案:

没有答案