2016-12-22 9 views
0

У меня есть следующий ViewModel:Как связать команду с событием ItemClick в MvxListView?

public ObservableCollection<Channel> Series { get; private set; } 

private MvxCommand<Channel> enableClicked; 
public ICommand EnableClicked 
{ 
    get 
    { 
     return enableClicked = enableClicked ?? 
      new MvxCommand<Channel>(ch => { 
       ch.Enabled = !ch.Enabled; 
      }); 
    } 
} 

И мой axml выглядит следующим образом:

<Mvx.MvxListView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    app:MvxItemTemplate="@layout/serieenable" 
    app:MvxBind="ItemsSource Series; ItemClick EnableClicked" /> 

я поставил точку останова на линии return enableClicked, который попал.

Если я поставил точку останова на линии ch.Enabled = !ch.Enabled;, она никогда не попадает, когда я касаюсь элемента ListView.

Как связать команду с событием ItemClick в MvxListView?

ответ

0

Я не могу воспроизвести вашу проблему. Только что попробовал с небольшой образец со строками:

private MvxCommand<string> _clickCommand; 
public ICommand ClickCommand 
    => _clickCommand = _clickCommand ?? new MvxCommand<string>(OnClick); 

private void OnClick(string item) 
{ 
    Mvx.TaggedTrace("MyVM", $"Item {item} clicked"); 
} 

А Вид:

<MvxListView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    app:MvxItemTemplate="@layout/my_listitem" 
    app:MvxBind="ItemsSource Items; ItemClick ClickCommand" /> 

Триггеры и работает просто отлично.

+0

Можете ли вы поделиться my_listitem? –