私はTableViewをiOSに持っていて、私の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だ
:ここ
[Register("ProjectMyTasksViewc")]
public class ProjectMyTasksViews : MvxTableViewController<ProjectMyTasksViewModel>
{
//other things
var source = new MvxSimpleTableViewSource(TableView, ProjectMyTasksItem.Key, ProjectMyTasksItem.Key);
TableView.Source = source;
this.CreateBinding(source).To<ProjectMyTasksViewModel>(viewModel => viewModel.Tasks).Apply();
this.CreateBinding(source).For(s => s.SelectedItem).To<ProjectMyTasksViewModel>(viewModel => viewModel.SelectedTask).Apply();
this.CreateBinding(source).For(tableSource => tableSource.SelectionChangedCommand).To<ProjectMyTasksViewModel>(viewModel => viewModel.ShowTaskCommand).Apply();
}
は私のViewModelです:
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