2015-03-05 6 views

ответ

1

Вам нужно добавить свойство для 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 
} 
+0

Великий ... Я имел большую часть этого закодированы вверх уже ... Я пропустил привязку SelectedItem к ListBox .... спасибо за вашу помощь. –

+0

PS ... Я полагаю, что CanThereMoveUp/Down предоставляет ложное возвращаемое значение, если _thereSelectedItem == null для реализации в логике перемещения вверх/вниз? –

+0

Свойства 'CanThereMoveUp' /' Down' будут отключать кнопку, если возвращаемое значение ложно. Я добавил NotifyOfPropertyChange, чтобы поднять это событие, если кнопка должна быть включена или отключена. – Ryan