showvideo_model 메서드를 호출하여 모델에서 탐색을 수행 한 후 mvvmcross에서 데이터 바인딩 문제가 있습니다. 안드로이드 측면에서 작동합니다.MVVMCROSS Ios 바인딩 ShowViewModel
그래서 문제는 탐색 자체가 작동하지만 모델에서 데이터를 가져 오지 않는다는 것입니다. 모델의
탐색 :
ShowViewModel<TeamEventDetailsViewModel>(new { eventID = item.ID });
의 ViewModel 데이터를 containts : 당신이 바닥에서 볼 수 있듯이는
public class TeamEventDetailsViewModel
: EventDetailsViewModel
{
public TeamEventModel CurrentEvent
{
get { return MyCurrentEvent as TeamEventModel; }
set
{
MyCurrentEvent = value;
RaisePropertyChanged(() => CurrentEvent);
TickerModel.Comments = value.Comments;
RaisePropertyChanged(() => TickerModel);
LineupModel.Team1Players = value.Team1Players;
LineupModel.Team2Players = value.Team2Players;
RaisePropertyChanged(() => LineupModel);
}
}
private EventDetailsLineupViewModel _lineupModel = new EventDetailsLineupViewModel();
public EventDetailsLineupViewModel LineupModel
{
get { return _lineupModel; }
set { _lineupModel = value; RaisePropertyChanged(() => LineupModel); }
}
public TeamEventDetailsViewModel()
{
EventToken = MvxMessenger.Subscribe<EventUpdateMessage>(OnEventUpdateMessage);
}
private void OnEventUpdateMessage(EventUpdateMessage eventUpdate)
{
if (MyCurrentEvent != null && eventUpdate.Event.ID == MyCurrentEvent.ID)
{
var updatedEvent = (TeamEventModel)eventUpdate.Event;
var myEvent = CurrentEvent;
if(updatedEvent.Score!=null)
myEvent.Score = updatedEvent.Score;
if (updatedEvent.Team1Players != null)
myEvent.Team1Players = updatedEvent.Team1Players;
if (updatedEvent.Team2Players != null)
myEvent.Team2Players = updatedEvent.Team2Players;
CurrentEvent = myEvent;
}
}
protected override void Update(EventModel eventdetails)
{
CurrentEvent = (TeamEventModel) eventdetails;
}
private string _teststring = "success";
public string Teststring
{
get { return _teststring; }
set
{
_teststring = value;
RaisePropertyChanged(()=>_teststring);
}
}
}
나는 기능을 증명하기 위해 TestString에 구현. ,
public class TeamEventDetailsView : MvxViewController
{
public UILabel TestLabel = new UILabel();
public TeamEventDetailsViewModel TeamEventDetailsViewModel
{
get { return (TeamEventDetailsViewModel)base.ViewModel; }
set { base.ViewModel = value; }
}
public override void ViewDidLoad()
{
View.AddSubview(TestLabel);
this.CreateBinding(TestLabel).To<TeamEventDetailsViewModel>(vm => vm.Teststring).Apply();
TestLabel.BackgroundColor = UIColor.Orange;
}
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
TestLabel.Frame=new RectangleF(0,20,View.Frame.Width,80);
}
}
그래서 나는 반복 자체가 작동 탐색을하지만 모델의 데이터 뷰에 표시되지 않습니다
보기에 바인딩.
뷰에서 수동으로 ViewModel을 작성하면 바인딩도 작동하지만 내비게이션을 호출하는 ViewModel에서 생성 된 데이터에 따라 데이터가 추출되기 때문에 제 상황에서는이를 수행 할 수 없습니다.
매뉴얼의 ViewModel : 내가 말할 수있는 Stuard 자신의 튜토리얼에서와 같이
TeamEventDetailsViewModel = new TeamEventDetailsViewModel();
TeamEventDetailsViewModel.Init(9816);
내가 정확히 동일한했다 :
https://www.youtube.com/watch?v=cbdPDZmuHk8
이 사람이 나를 위해 조언을 가지고 있습니까? 감사합니다. .
아무것도 작동해야 당신이 당신의
ViewDidLoad
재정에 그 전화를 추가하면? – PkL728불행히도. –
나는 안드로이드/WinRT에서 지금 당장로드가 끝난 직후에 물건을 부 풀릴 곳을 알아 내려고 노력해 왔으며, 궁금한 점이 있다고 생각합니다. 감사! –