程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了绑定在 Listview Xamarin MVVM 中不起作用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决绑定在 Listview Xamarin MVVM 中不起作用?

开发过程中遇到绑定在 Listview Xamarin MVVM 中不起作用的问题如何解决?下面主要结合日常开发的经验,给出你关于绑定在 Listview Xamarin MVVM 中不起作用的解决方法建议,希望对你解决绑定在 Listview Xamarin MVVM 中不起作用有所启发或帮助;

我有一个似乎没有人能够弄清楚的神秘问题。我正在使用 Xamarin 和类库构建一个应用程序,使用 MVVM 模式。

当我尝试绑定标签时,我有一个连接到列表的列表视图,但不会连接到属性。我已经尝试了一切,一点一点地删除了所有的代码,看看是否改变了一些东西,但没有任何效果。 我已经解决这个问题好几天了,如果有人能帮助我,我将非常感激。

我已经检查过并且列表成功进入用户界面,我怀疑错误出在 xaml 代码中,但如果可能是其他代码,我会发布大部分代码。

页面:

        <StackLayout>

        <!-- Searchbar  -->
        <StackLayout>
            <Searchbar 
                Textcolor="black"
                FontSize="24"
                Placeholdercolor="Black"
                Placeholder="Sök Lista..." 
                margin="0,5,30,10"
                SearchCommand="{Binding PerformSearch}"/>
        </StackLayout>
        
        <!-- ListvIEw of inventory Lists  -->
        <ListVIEw BACkgroundcolor="#7EA0B7" 
              Separatorcolor="#7EA0B7"
                  x:name="ListVIEw"
              Itemssource="{Binding listofLists}"
              HasUnevenRows="True"
              SELEctionMode="None">

        <ListVIEw.ItemTemplate>
            <DataTemplate>
                <VIEwCell>  
                    <GrID padding="5">
                        <Frame CornerRadius="10" BACkgroundcolor="white">
                            <StackLayout>
                                
                            <Label 
                                Textcolor="Black" 
                                FontFamily="PTC55F.ttf#ptc55f"
                                VerticalOptions="Center"  
                                Text="{Binding ListnamE}" <----- can't deBUG cause it can't find it
                                FontSize="Large"/>
                                
                            <Label 
                                FontFamily="PTC55F.ttf#ptc55f"
                                margin="0,5" 
                                Text="{Binding DateSent}"<----- can't deBUG cause it can't find it                                FontSize="Medium"/>

                                    <Label 
                                FontFamily="PTC55F.ttf#ptc55f"
                                margin="0,5" 
                                Text="{Binding DatE}" <----- can't deBUG cause it can't find it
                                FontSize="Medium"/>

           
                                </StackLayout>
                        </Frame>
                    </GrID>
                </VIEwCell>
            </DataTemplate>
        </ListVIEw.ItemTemplate>

    </ListVIEw>

        <!-- Create new List button  -->
        <StackLayout>
            <button Text="+ Skapa ny Lista"
                    margin="8"
                    Heightrequest="60"
                    FontSize="24"
                    FontFamily="PTC55F.ttf#ptc55f"
                    BACkgroundcolor="#AAC0AA"
                    Textcolor="black"
                    bordercolor="Black"
                    borderWIDth="2"
                    Command="{Binding NavigateCreateListCommanD}"/>
        </StackLayout>

</StackLayout>
    
</ContentPage>

xaml.cs

    public partial class InventoryStartPage : ContentPage
    {
        public InventoryStartPage()
        {
            InitializeComponent();
           
            BindingContext = new InventoryStartviewmodel(new ListManager(new mockListRepo());


        }

虚拟机

        public ObservableCollection<ListModel> listofLists { get; set; }


        private ListManager _manager;

        public InventoryStartviewmodel(ListManager manager,Navigationservices navigationservicE)
        {
            
            _manager = manager;
          
            listofLists = _manager.GetLists();
           


        }

经理

 public class ListManager
    {
        public ObservableCollection<ListModel> ListList = new ObservableCollection<ListModel>();
        private Readonly ImockListRepo _mockRepo;

        public ListManager(ImockListRepo mockRepo)
        {
            _mockRepo = mockRepo;
        }

        public ObservableCollection<ListModel> GetLists()
        {
            foreach (var List in _mockRepo.GetAllLists())
            {
                ListList.Add(List);
            }

            return ListList;

        }
    }

解决方法

终于!由于这个绑定问题,我把头发扯了几个小时。朋友们的解决方案来了!

        <ListView 
            BACkgroundColor="White"
                  Itemssource="{Binding ListOfArticles}"
            HasUnevenRows="True"
              SELEctionMode="None">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Padding="10" 
                         x:DataType="model:ArticleRegistrationModel"> <--------THISSSS
                            <Label Text="{Binding ArticlEID}" 
                          
                            FontSize="16" />
                            <Label Text="{Binding Articlename}" 
                            LineBreakmode="NoWrap"
                            FontSize="13" />
                            <Label Text="{Binding  }" 
                            LineBreakmode="NoWrap"
                            FontSize="13" />

                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>


        </ListView>

将 x:DataType="model:ArticleRegistrationModel" 添加到围绕标签的 Stacklayout 最终修复了它。起初只出现了两个道具,但在构建之后它们都在那里。

希望这也能解决其他人的问题。

大佬总结

以上是大佬教程为你收集整理的绑定在 Listview Xamarin MVVM 中不起作用全部内容,希望文章能够帮你解决绑定在 Listview Xamarin MVVM 中不起作用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。