iOS에 TableView가 있고 ViewModel에서 TableView의 Selected Item에 대한 속성을 가지고 있지만이 속성에 대해 Selected Item을 바인딩하는 방법을 모르겠습니다. 어떻게해야합니까? 내 프로젝트는 크로스 플랫폼입니다. Android 프로젝트와 iOS 프로젝트가 있습니다. Android 프로젝트에서 바인드를 수행했습니다.MvvmCross - iOS TableView에서 SelectedItem에 바인딩하는 방법?
<Mvx.MvxListView
android:id="@+id/lstViewTasks"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:focusableInTouchMode="true"
android:choiceMode="multipleChoice"
local:MvxBind="ItemsSource Tasks; SelectedItem SelectedTask; ItemClick ShowTaskCommand"
local:MvxItemTemplate="@layout/projectmytasksitem" />
하지만 iOS에서 동등한 바인딩을 수행 할 수 없습니다.
내 TableViewController 있다는 : 나는 SelectedTask
세트 대 실행하기 당신의 ShowTaskCommand
의 타이밍과 관련이있다 생각
public class ProjectMyTasksViewModel : MvxViewModel
{
public Action ShowTaskCommandAction { get; set; }
private IList<Task> _tasks;
public IList<Task> Tasks
{
get { return _tasks; }
set { _tasks = value; RaisePropertyChanged(() => Tasks); }
}
private Task _selectedTask;
public Task SelectedTask
{
get { return _selectedTask; }
set { _selectedTask = value; RaisePropertyChanged(() => SelectedTask); }
}
private MvxCommand _showTaskCommand;
public MvxCommand ShowTaskCommand
{
get
{
_showTaskCommand = _showTaskCommand ?? (_showTaskCommand = new MvxCommand(ExecuteShowTaskCommand));
return _showTaskCommand;
}
}
private void ExecuteShowTaskCommand()
{
if (!SelectedTask.IsCompleted)
{
ShowTaskCommandAction?.Invoke();
}
}
}
'SelectedItem' 바인딩에 어떤 문제점이 있습니까? 모든 컴파일 또는 런타임 오류? 아니면'SelectedTask'가 방금 맞았 을까요? – Plac3Hold3r
NullReferenceException이 발생했습니다. ViewModel의 SelectedTask 속성이 null입니다. –
ViewModel의 일부를'SelectedItem','ShowTaskCommand' 그리고 NullReferenceException이 발생하는 곳에 포함시켜 주시겠습니까? – Plac3Hold3r