У меня возникли проблемы с использованием RelayCommand GalaSoft.RelayCommand перестает работать через некоторое время
У меня есть NextCommand свойство, которое работает, но только несколько раз.
Впоследствии он прекращает работу полностью.
Вы можете попробовать это с образцом проекта:
http://s000.tinyupload.com/?file_id=65828891881629261404
поведение выглядит следующим образом:
- NextCommand:
- хлопки все элементы до активного индекс
- , если есть менее 50 пунктов остались, выталкивает 1 нового пункт
- марок нового элемента в качестве активного
- BackCommand:
- перемещает активный индекс назад на 1 позицию
Этапы тиражирования:
- ключ «+» (OemPlus) был связан с NextCommand
- «-» ключ (OemMinus) был связан с BackCommand
- Удерживайте клавишу «+», пока список не перестает расти (50 шт ограничение)
- Удерживая «-» клавишу, пока первый элемент в списке не является активным
- Повторять
количество повторений, необходимых для репликации (ошибка) противоречива.
Иногда я получаю его после 4 повторений; другие времена до до 9.
// Items Collection
public class ItemCollection : ViewModelBase
{
// List of Items
private readonly ObservableCollection<Item> _items = new ObservableCollection<Item>();
public ObservableCollection<Item> Items
{
get { return _items; }
}
// Constructor
public ItemCollection()
{
BackCommand = new RelayCommand(
() =>
{
// Go to previous page
var index = Items.IndexOf(ActiveItem);
if (index > 0)
{
ActiveItem = Items[index - 1];
}
},
() => ActiveItem != null && Items.IndexOf(ActiveItem) > 0);
}
// Back command
public RelayCommand BackCommand { get; set; }
// Next command
public RelayCommand NextCommand { get; set; }
// The currently-active item
private Item _activeItem;
public Item ActiveItem
{
get { return _activeItem; }
set
{
Set(() => ActiveItem, ref _activeItem, value);
}
}
}
// Item
public class Item : ViewModelBase
{
public string Title { get; set; }
}
Когда я ступил в код RelayCommand, в IsAlive флаг выполнит действие было ложным. Но я не могу понять, как это может произойти.
+1 для вашего приятного анимированного Gif, объясняющего вашу проблему. – Sheridan
Я не вижу, где в вашем коде создается экземпляр 'NextCommand'. Проблема может быть там (что-то, что отключает ее). – Sinatr
Другими словами, нам нужно увидеть, что 'NextCommand' is – Kcvin