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