[UWP / MVVM] Botão Ativar / Desativar na coluna Modelo de dados RadDataGrid que possui comandos vinculados a eles nas condições
Eu configurei uma propriedade bool e a vinculei ao IsEnabled no xaml, mas o método ICommand CanExecute substitui o IsEnabled no xaml, portanto minha propriedade bool é ineficaz.
Quando defino as condições no método CanExecute no modelo de exibição, ele desativa todos os botões aos quais o método está vinculado ou ativa todos eles.
É uma grade que exibe 3 botões diferentes para cada linha, e cada botão vai para uma nova tela xaml. Se não houver dados para a condição específica na linha em que o botão está ativado, ele deverá ser desativado.
Como faço para definir isso para que os botões sejam desativados em uma condição?
Comando personalizado:
public class CustomCommand : ICommand
{
private Action<object> execute;
private Predicate<object> canExecute;
public CustomCommand(Action<object> execute, Predicate<object> canExecute)
{
this.execute = execute;
this.canExecute = canExecute;
}
public event EventHandler CanExecuteChanged
{
add
{
}
remove
{
}
}
public bool CanExecute(object parameter)
{
//throw new NotImplementedException();
bool b = canExecute == null ? true : canExecute(parameter);
return b;
}
public void Execute(object parameter)
{
execute(parameter);
}
}
xaml
<DataTemplate>
<Button Command="{Binding Source={StaticResource VM},
Path=Command}" CommandParameter="{Binding}" >
<SymbolIcon Symbol="Edit" Foreground="AliceBlue" />
</Button>
</DataTemplate>
CanExecute na VM
private bool CanGetDetails(object obj)
{
return true;
}