【问题标题】:Change the background color in the selected item. Xamarin Forms更改所选项目的背景颜色。 Xamarin 表单
【发布时间】:2021-12-09 23:55:48
【问题描述】:

我不想更改所选记录的背景颜色。我创建了转换器,但它标记的记录多于一个。我只需要选择一条记录并更改其中的背景颜色

颜色转换器

    public class ColorElementSelectionConverter : ElementSelectionConverter<ColorResponseModel>
{
    protected override bool Equals(ColorResponseModel selectedElement, ColorResponseModel currentElemnt)
    {
        return selectedElement.Id.Equals(currentElemnt.Id);
    }
}

元素选择转换器

    public abstract class ElementSelectionConverter<T> : IValueConverter where T: class
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var selectedElement = value as T;
        if(selectedElement == null) return false;

        var viewCell = parameter as ViewCell;
        if(viewCell == null) return false;

        var currentElemnt = viewCell.BindingContext as T;
        if(currentElemnt == null) return false;

        return Equals(selectedElement, currentElemnt);
    }

    protected virtual bool Equals(T selectedElement, T currentElemnt)
    {
        return selectedElement.Equals(currentElemnt);
    }

查看

 <ViewCell x:Name="ColorViewCell">
                    <Grid Margin="0,0,0,0" HeightRequest="36" VerticalOptions="Center">
                        <Grid.Triggers>
                            <DataTrigger TargetType="Grid" 
                                         Binding="{Binding Path=BindingContext.Color, Source={x:Reference Name=CarColorListPopup},Converter={StaticResource ColorElementSelectionConverter},
                                ConverterParameter={x:Reference Name=ColorViewCell}}" Value="true">
                                <Setter Property="BackgroundColor" Value="#388FEE" />
                            </DataTrigger>

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    我正在使用 ItemSelected,但除非我在 ListView 中选择任何其他项目,否则所选项目不会被取消选择。我将 ItemSelected 替换为 ItemTapped。

    【讨论】:

      【解决方案2】:

      要更改列表视图中所选项目的背景颜色,请在此处找到解决方案:

      Change background color of selected listview item

      您需要为其创建自定义 viewcell 及其渲染器。

      希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-26
        • 2017-04-29
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        相关资源
        最近更新 更多