Вам нужно добавить свойство для SelectedThereItem
и связать его в ThereList
:
XAML:
<ListBox x:Name="ThereList" SelectedItem="{Binding ThereSelectedItem}" ... />
<!-- Add buttons for ThereMoveUp and ThereMoveDown - use Caliburn naming convention -->
<Button x:Name="ThereMoveUp"/>
<Button x:Name="ThereMoveDown"/>
ViewModel:
private Person _thereSelectedItem;
public Person ThereSelectedItem
{
get { return _thereSelectedItem; }
set
{
_thereSelectedItem = value;
NotifyOfPropertyChange(() => ThereSelectedItem);
NotifyOfPropertyChange(() => CanThereMoveDown);
NotifyOfPropertyChange(() => CanThereMoveUp);
}
}
// Add event method handlers for ThereMoveUp/Down
public bool CanThereMoveUp { get { return _thereSelectedItem != null; } }
public void ThereMoveUp
{
// Logic to move up
}
public bool CanThereMoveDown { get { return _thereSelectedItem != null; } }
public void ThereMoveDown
{
// Logic to move down
}
Великий ... Я имел большую часть этого закодированы вверх уже ... Я пропустил привязку SelectedItem к ListBox .... спасибо за вашу помощь. –
PS ... Я полагаю, что CanThereMoveUp/Down предоставляет ложное возвращаемое значение, если _thereSelectedItem == null для реализации в логике перемещения вверх/вниз? –
Свойства 'CanThereMoveUp' /' Down' будут отключать кнопку, если возвращаемое значение ложно. Я добавил NotifyOfPropertyChange, чтобы поднять это событие, если кнопка должна быть включена или отключена. – Ryan