Xamarin.android 不带适配器的自定义控件。绑定列表
我为monodroid创建了一个自定义控件。由于我的控件绑定了IEnumerable,因此遵循教程和本教程。 我的控件继承到FrameLayout,然后我无法从父类访问适配器属性 当我分配List绑定属性并调用RaisePropertyChanged事件时。没有上升。我该怎么做 提前谢谢 编辑以显示代码 谈话是廉价的,我显示代码 这是自定义控件的标题和绑定列表Xamarin.android 不带适配器的自定义控件。绑定列表,xamarin.android,mvvmcross,Xamarin.android,Mvvmcross,我为monodroid创建了一个自定义控件。由于我的控件绑定了IEnumerable,因此遵循教程和本教程。 我的控件继承到FrameLayout,然后我无法从父类访问适配器属性 当我分配List绑定属性并调用RaisePropertyChanged事件时。没有上升。我该怎么做 提前谢谢 编辑以显示代码 谈话是廉价的,我显示代码 这是自定义控件的标题和绑定列表 public class DrawingBoardControl : View { priva
public class DrawingBoardControl : View
{
private DrawingItems m_drawingItems;
[MvxSetToNullAfterBinding]
public DrawingItems CanvasItems
{
get
{
return m_drawingItems;
}
set
{
m_drawingItems = value;
this.Update();
}
}
...
我使用一个名为“DrawingItems”的类,有
public class DrawingItems : IEnumerable<IDrawingElement>
{
private List<IDrawingElement> myDrawingItems = new List<IDrawingElement>();
public IEnumerator<IDrawingElement> GetEnumerator()
{
return myDrawingItems.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
public void Add(IDrawingElement element)
{
myDrawingItems.Add(element);
}
}
公共类DrawingItems:IEnumerable
{
私有列表myDrawingItems=新列表();
公共IEnumerator GetEnumerator()
{
返回myDrawingItems.GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
返回此.GetEnumerator();
}
公共无效添加(IDrawingElement)
{
myDrawingItems.Add(元素);
}
}
但是,在其他自定义控件中,我使用IEnumerable和generic列表,问题仍然存在
当我在ViewModel中使用RaisePropertyChanged时,Items属性不会提升
很抱歉昨天没有提供更多信息对于未完成的问题,总会有一些答案: 如果无法访问父级的适配器,则父级必须设置子级的上下文。没有更多的选择了。通过公开完整的接口,使自定义控件完全可绑定。列表必须为列表项提供上下文 不知何故,绑定到IEnumerable的customcontrol感觉非常错误。一个用于显示列表项的自定义控件,我可以理解,但不适用于列表。但这当然是可以做到的。但是您最终会设置对容器类的引用,并设置每个项的datacontext或viewmodel 但如果你想让别人帮忙,请提供更多信息 更新: 然后我也更新了:)这提供了一些问题的线索: 不要分配新列表,而是从ObservaleCollection继承this,或者使用setter中的正确参数手动调用raiseProperty。我认为这是出于设计,分配一个新列表不会调用PropertyRaised
因为“应用程序为王”——规则:在这种情况下,我会通知酒店自己改变。这可能与弱引用问题有关(请参见ListItem属性上的属性)。这个问题太难回答。它需要更多的信息。也许有些代码会有所帮助,例如绑定视图属性、绑定视图模型属性和绑定本身。一些调试跟踪可能也会有帮助——这可能会告诉你什么是错的,什么不是错的。我仍然不确定你说的“不升起”是什么意思。顺便说一句,此代码仅用于您的最后一个问题?我的第一个答案是关于你的第一个问题。。。