首页 > 解决方案 > Xamarin 表单 ListVew 绑定 - 将 ViewCell 标签绑定到方法

问题描述

我正在使用 MVVM 方法使用 Xamarin Forms,它运行良好。

我需要向现有 ListView 添加功能以在绑定值为某个值时显示文本。

这是生成描述的单元格

   <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout>
                    <Label Text="{Binding Description}"  x:Name="lblDescription" 
               Style="{DynamicResource ListItemTextStyle}" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>

有没有什么方法基本上只显示标签是以下功能是真的(这可能在视图模型或后面的代码中)例如:

private bool IsDescriptionOk(string description)
    {
       //Look up description possibly in another lookup list
    }

id 想将可见的绑定到方法,如:

Visible="{Binding IsDescriptionOk}"

但是在列表视图中,如果有意义,id 需要传入项目索引吗?

标签: listviewxamarin.formsbinding

解决方案


我想可能有多种方法可以解决此类问题。其中之一可能是使用IValueConverter。像这样的东西:

<ViewCell>
    <StackLayout>
        <Label
            Text="{Binding Description}"
            Style="{DynamicResource ListItemTextStyle}"
            IsVisible="{Binding Description, Converter="{StaticResource ItemStatusToVisiblityConverter}" />
    </StackLayout>
</ViewCell>

但是,我认为List应该只包含可见项目,否则你可能有多个 empty ListItems


推荐阅读