XAML ListView:GroupHeaderTemplate 绑定不适用于 Release

图奇阿拉尔

我有以下课程:

 public class TitlePropertyViewModel : BaseViewModel
    {
        private int _propertyId;
        private string _name;
        private bool _isRequired;
        private bool _isChecked;
        private bool _answerIsChecked;

        public string GroupingParameter { get; set; }
        public int PropertyId { get => _propertyId; set { _propertyId = value; OnPropertyChanged(); } }
        public string Name { get => _name; set { _name = value; OnPropertyChanged(); } }
        public bool IsChecked { get => _isChecked; set { _isChecked = value; OnPropertyChanged(); } }
        public bool AnswerIsChecked { get => _answerIsChecked; set { _answerIsChecked = value; OnPropertyChanged(); SelectedAnswerChanged?.Invoke(this, new EventArgs()); } }
        public bool IsRequired { get => _isRequired; set { _isRequired = value; OnPropertyChanged(); } }

        public override string ToString() => $"{this.Name}: {(this.IsChecked ? "Checked" : "-")} | {(this.IsRequired ? "Required" : "-")}";
    }

我在 View 模型中的属性是:

 private IList<TitlePropertyViewModel> _titleProperties;

    public IList<TitlePropertyViewModel> TitleProperties { get => _titleProperties; set { _titleProperties = value; OnPropertyChanged(); OnPropertyChanged(nameof(GrouppedTitleProperties)); OnPropertyChanged(nameof(GrouppedFilteredTitleProperties)); } }
    public object GrouppedTitleProperties { get => this.TitleProperties?.GroupBy(g => g.GroupingParameter); }
    public object GrouppedFilteredTitleProperties { get => this.TitleProperties?.Where(w => w.IsChecked || w.IsRequired).GroupBy(g => g.GroupingParameter); }

我在 TitleProperties 中添加数据并将其绑定在我的 ListView 中,如下所示:

 <ListView
                ItemsSource="{Binding GrouppedFilteredTitleProperties}"
                IsPullToRefreshEnabled="False"
                IsRefreshing="{Binding IsBusy}"
                IsGroupingEnabled="True"
                HasUnevenRows="True"
                SeparatorVisibility="None"
                CachingStrategy="RecycleElement"
                BackgroundColor="Transparent"
                ItemSelected="Item_Selected"
                >
                <ListView.GroupHeaderTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout Padding="25,15" BackgroundColor="{DynamicResource PrimaryColor}">
                                <Label Text="{Binding Key}" FontAttributes="Bold" FontSize="Large" 
                                       HorizontalOptions="Start" 
                                       VerticalOptions="Center"
                                       TextColor="{DynamicResource TextColorLight}" />
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.GroupHeaderTemplate>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout Orientation="Horizontal" Margin="25,5">
                                <renderer:IconView WidthRequest="25" Source="{Binding IsChecked,Converter={StaticResource PositiveIconConverter}}" FillColor="{Binding IsChecked,Converter={StaticResource PositiveColorConverter}}" VerticalOptions="CenterAndExpand" />
                                <Label Text="{Binding Name}" TextColor="{DynamicResource TextColorLight}"/>
                                <Image Source="exclamation_sign.png" IsVisible="{Binding IsRequired}" VerticalOptions="CenterAndExpand" />
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

这适用于调试模式,但是当我设置发布模式时,它不会在 iOS 和 Android 的 GroupHeaderTemplate 中显示 Key。但是当我在标签上设置静态文本时,它会起作用。

这是调试模式: 调试

这是发布模式: 释放

图奇阿拉尔

好的,我找到了解决方案。当我使用这样的 lambda 表达式时:

    public object GrouppedTitleProperties { get => this.TitleProperties?.GroupBy(g => g.GroupingParameter); }

它不起作用。但是当我用这样的查询表达式替换它时:

public object GrouppedTitleProperties
    {
        get => from tp in this.TitleProperties
               group tp by tp.GroupingParameter into GrouppedTitleProperties
               select new
               {
                   Key = GrouppedTitleProperties.Key,
                   Items = GrouppedTitleProperties.ToList()
               };
    }

有用。我阅读了关于 bugzilla 的错误报告https://bugzilla.xamarin.com/show_bug.cgi?id=56250)。其中一项评论指出:

链接器可能正在剥离 System.Linq 或其他破坏 lambda 表达式使用的 SDK 程序集。

所以,我的问题解决了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xamarin绑定不适用于ListView

来自分类Dev

ListView 的刷新命令不适用于绑定的 IRelayCommand

来自分类Dev

WPF Listview 绑定不适用于字典

来自分类Dev

XAML ListView Gridview绑定

来自分类Dev

ListView onItemClickListener不适用于Android

来自分类Dev

Android Clickable不适用于ListView

来自分类Dev

长按不适用于ListView行

来自分类Dev

Listview列的XAML绑定宽度

来自分类Dev

XAML智能感知不适用于<StaticResource />

来自分类Dev

窃听不适用于Spring Integration 4.2.5 RELEASE

来自分类Dev

Google Maps适用于Android Release APK,但不适用于AAB

来自分类Dev

浮动操作按钮不适用于ListView

来自分类Dev

Android ListView的OnItemClickListener不适用于不可聚焦的PopupWindow

来自分类Dev

ListView适配器不适用于AppCompatActivity

来自分类Dev

滚动不适用于我的ListView

来自分类Dev

单击不适用于listview android的searchitem

来自分类Dev

listview getChildAt()不适用于imageview吗?

来自分类Dev

ListView荧光笔不适用于某些png

来自分类Dev

onListItemClick不适用于我的ListView

来自分类Dev

Android ListView的OnItemClickListener不适用于不可聚焦的PopupWindow

来自分类Dev

ListView适配器不适用于AppCompatActivity

来自分类Dev

字母顺序不适用于自定义 ListView

来自分类Dev

XAML中的WPF ListView绑定ItemsSource

来自分类Dev

IsMouseOver触发器不适用于GridViewColumn WPF XAML

来自分类Dev

IsMouseOver触发器不适用于GridViewColumn WPF XAML

来自分类Dev

Spring Saml不适用于最新的Spring Security 4.0.0.RELEASE

来自分类Dev

Spring Web教程不适用于STS 3.5.1.RELEASE和Gradle

来自分类Dev

Spring Saml不适用于最新的Spring Security 4.0.0.RELEASE

来自分类Dev

spring-data-elasticsearch-2.0.4.RELEASE startsWith 不适用于非分析字段

Related 相关文章

  1. 1

    Xamarin绑定不适用于ListView

  2. 2

    ListView 的刷新命令不适用于绑定的 IRelayCommand

  3. 3

    WPF Listview 绑定不适用于字典

  4. 4

    XAML ListView Gridview绑定

  5. 5

    ListView onItemClickListener不适用于Android

  6. 6

    Android Clickable不适用于ListView

  7. 7

    长按不适用于ListView行

  8. 8

    Listview列的XAML绑定宽度

  9. 9

    XAML智能感知不适用于<StaticResource />

  10. 10

    窃听不适用于Spring Integration 4.2.5 RELEASE

  11. 11

    Google Maps适用于Android Release APK,但不适用于AAB

  12. 12

    浮动操作按钮不适用于ListView

  13. 13

    Android ListView的OnItemClickListener不适用于不可聚焦的PopupWindow

  14. 14

    ListView适配器不适用于AppCompatActivity

  15. 15

    滚动不适用于我的ListView

  16. 16

    单击不适用于listview android的searchitem

  17. 17

    listview getChildAt()不适用于imageview吗?

  18. 18

    ListView荧光笔不适用于某些png

  19. 19

    onListItemClick不适用于我的ListView

  20. 20

    Android ListView的OnItemClickListener不适用于不可聚焦的PopupWindow

  21. 21

    ListView适配器不适用于AppCompatActivity

  22. 22

    字母顺序不适用于自定义 ListView

  23. 23

    XAML中的WPF ListView绑定ItemsSource

  24. 24

    IsMouseOver触发器不适用于GridViewColumn WPF XAML

  25. 25

    IsMouseOver触发器不适用于GridViewColumn WPF XAML

  26. 26

    Spring Saml不适用于最新的Spring Security 4.0.0.RELEASE

  27. 27

    Spring Web教程不适用于STS 3.5.1.RELEASE和Gradle

  28. 28

    Spring Saml不适用于最新的Spring Security 4.0.0.RELEASE

  29. 29

    spring-data-elasticsearch-2.0.4.RELEASE startsWith 不适用于非分析字段

热门标签

归档