C# ItemsSource在自定义绑定水平滚动视图的构造函数中为空
我无法将Cheesebarons水平列表视图更新为新的v3 MvvmCross。除了在我的“BindableHorizontalListView”控件的构造函数中,适配器的ItemsSource为null外,其他一切似乎都正常工作。这很奇怪,因为上下文显示我试图绑定到的视图模型属性非常清楚地显示有3个项,并且绑定看起来非常简单。我错过了什么?我希望我已经包含了足够的代码。我还尝试通过“OnViewModelSet”事件上的fluent绑定来绑定它,结果相同 警告C# ItemsSource在自定义绑定水平滚动视图的构造函数中为空,c#,android,mvvmcross,C#,Android,Mvvmcross,我无法将Cheesebarons水平列表视图更新为新的v3 MvvmCross。除了在我的“BindableHorizontalListView”控件的构造函数中,适配器的ItemsSource为null外,其他一切似乎都正常工作。这很奇怪,因为上下文显示我试图绑定到的视图模型属性非常清楚地显示有3个项,并且绑定看起来非常简单。我错过了什么?我希望我已经包含了足够的代码。我还尝试通过“OnViewModelSet”事件上的fluent绑定来绑定它,结果相同 警告 [MvxBind] 24.87
[MvxBind] 24.87 Unable to bind: source property source not found Cirrious.MvvmCross.Binding.Parse.PropertyPath.PropertyTokens.MvxPropertyNamePropertyToken on DeviceViewModel
AXML
ViewModel上的属性
private Services.Device[] _devicesList;
public Services.Device[] DevicesList {
get {
return _devicesList;
}
set {
_devicesList = value;
RaisePropertyChanged(() => DevicesList);
}
}
如果XAMStudio中有PCL支持,我就可以进来看看其他控件是如何做到的 ItemsSource在构造函数中始终为空-它是通过绑定设置的属性,并且该属性只能在构造函数完成后设置 信息:
[MvxBind] 24.87 Unable to bind: source property source not found Cirrious.MvvmCross.Binding.Parse.PropertyPath.PropertyTokens.MvxPropertyNamePropertyToken on DeviceViewModel
包含一个bug-已修复-因此该消息在将来应该更具可读性
如果bug没有出现,我怀疑消息会说问题出在
DevicesList
-绑定找不到该属性。它在那里吗?它是否有一个get
?它是公共的吗?谢谢你的帮助!在问题中添加了DeviceList代码,对我来说也很简单,但我对所有这些MVVM魔法都是新手。这不是“魔法”——这是代码和正常的开发。我建议你先尝试使用普通列表——只需切换、重新构建所有列表并使用标准列表,然后切换到水平列表并进行调试。我已经绑定了大量列表,刚刚在iPhone上编写了相同的应用程序。我肯定这是一个愚蠢的错误,当我发现它时,我会让全世界知道。谢谢你的帮助。很高兴了解这个bug,如果我能自己在Xam.Studio上构建mvvmCross PCL就好了。我听从了你的建议,它正确地绑定到了listview。。。事实证明,绑定根本不是问题所在。进入控件列表填充代码现在我看到listViewItems在那里。。。由于某些原因,视图无法显示,待定。再次感谢
[Activity (Label = "Device", ScreenOrientation = ScreenOrientation.Portrait)]
public class DeviceView : MvxActivity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView(Resource.Layout.device);
}
}
private Services.Device[] _devicesList;
public Services.Device[] DevicesList {
get {
return _devicesList;
}
set {
_devicesList = value;
RaisePropertyChanged(() => DevicesList);
}
}
[MvxBind] 24.87 Unable to bind: source property source not found Cirrious.MvvmCross.Binding.Parse.PropertyPath.PropertyTokens.MvxPropertyNamePropertyToken on DeviceViewModel