Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绑定在Listview Xamarin MVVM中不起作用_Listview_Xamarin_Mvvm_Binding - Fatal编程技术网

绑定在Listview Xamarin MVVM中不起作用

绑定在Listview Xamarin MVVM中不起作用,listview,xamarin,mvvm,binding,Listview,Xamarin,Mvvm,Binding,我有一个神秘的问题,似乎没有人能弄明白。我正在用Xamarin和类库以及MVVM模式构建一个应用程序 当然,我有一个连接到列表的listview,但当我尝试绑定标签时,它不会连接到属性。我已经尝试了所有的方法,一点一点地删除了所有的代码,看看这是否改变了一些东西,但没有任何效果。 我已经讨论这个问题好几天了,如果有人能帮助我,我将非常感激 我已经检查过了,列表成功地进入了UI,我怀疑错误在xaml代码中,但是如果可能是其他原因,我会发布大部分代码 第页: 虚拟机 publicobservable

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

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

我已经检查过了,列表成功地进入了UI,我怀疑错误在xaml代码中,但是如果可能是其他原因,我会发布大部分代码

第页:

虚拟机

publicobservableCollection列表{get;set;}
私人上市经理(u经理),;
公共资源清册StartViewModel(ListManager管理器,导航服务导航服务)
{
_经理=经理;
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;

        }
    }
公共类列表管理器
{
public ObservableCollection ListList=新的ObservableCollection();
私有只读IMockListRepo_mockRepo;
公共列表管理器(IMockListRepo mockRepo)
{
_mockRepo=mockRepo;
}
公共ObservableCollection GetList()
{
foreach(在_mockRepo.getAllList()中的变量列表)
{
添加(列表);
}
返回列表;
}
}

终于!因为这个缠结的问题,我把头发扯了几个小时。朋友们,解决办法来了

        <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>


您的ListModel看起来像什么?
public类ListModel{public int ListId{get;set;}公共字符串ListName{get;set;}公共日期时间DateCreated{get;set;}公共日期时间?DateSent{get;set;}
@U编码器添加断点以检查列表是否有数据?我测试了你的代码,没有问题。我测试过,所以它仍然不能工作,这很奇怪。当我从一开始就将listview连接到viewmodel中模拟的列表时,绑定工作。请尝试更改一个标签以使用硬编码的文本值-这将验证listview是否有数据以及模板布局是否工作
        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>