我目前正在将SideBarDemo与ReactiveUI一起转换为C#和MonoMac。 我有两个NSTextField和NSTableCellView子类,它们是公共视图模型类的视图。 我的问题是我不知道如何实现这些子类,以便数据绑定工作。 这些子类的良好实现如何?
在下面你可以看到我当前的状态。我知道在构造函数中创建的绑定将不起作用,因为ViewModel是一个普通的属性。但是,我无法弄清楚我应该最好地实现哪些接口。
[Register("MainCellView")]
public class MainCellView : NSTableCellView, IViewFor<TreeItemViewModel>
{
public MainCellView ()
{
this.OneWayBind (ViewModel, x => x.Name, x => x.TextField.StringValue);
}
public MainCellView(IntPtr ptr) : base(ptr) { }
public TreeItemViewModel ViewModel { get; set; }
object IViewFor.ViewModel
{
get { return this.ViewModel; }
set { this.ViewModel = (TreeItemViewModel)value; }
}
}
[Register("HeaderCellView")]
public class HeaderCellView : NSTextField, IViewFor<TreeItemViewModel>
{
public HeaderCellView ()
{
this.OneWayBind (ViewModel, x => x.Name, x => x.StringValue);
}
public HeaderCellView(IntPtr ptr) : base(ptr) { }
TreeItemViewModel _vm;
public TreeItemViewModel ViewModel { get; set }
object IViewFor.ViewModel
{
get { return this.ViewModel; }
set { this.ViewModel = (TreeItemViewModel)value; }
}
}
提前做了很多,
延
答案 0 :(得分:0)
但是,我无法弄清楚我应该最好地实现哪些接口。
如果ReactiveUI没有内置的子类来帮助你完成一个类,你应该为你的类实现INotifyPropertyChanged
,并在ViewModel发生变化时发出信号。这应该足以让绑定工作了!