CommunityToolkit.Mvvm Relaycommand с параметром перечислимого типа
Есть ли способ передать перечисление в качестве параметра команде CommunityToolkit.Mvvm Relay?
Я пытался начать использовать CommunityToolkit.Mvvm, но довольно быстро застрял, так как не уверен, почему моя команда отключает кнопку.
Для отладки я удалил свойство, которое оценивает, может ли команда быть выполнена или нет, и я также попытался просто дать ему свойство, которое всегда возвращает true, оба из которых должны привести к включению кнопки.
<Button x:Name="SquareButton" Command="{Binding UpdateStateCommand}"
CommandParameter="{Binding ElementName=ItemsControl, Path=DataContext.CurrentPlayer}">
<Button.Content>
<Viewbox>
<TextBlock Text="{Binding State, Converter={StaticResource stateconverter}}"/>
</Viewbox>
</Button.Content>
</Button>
[ObservableProperty]
private SquareState _state = SquareState.Empty; // The enum
public TicTacToeSquareViewModel() { }
[RelayCommand]
private void UpdateState(SquareState state) => State = state;
Кнопка является ItemTemplateItemsControl, DataContext которого является доской крестики-нолики.
Когда я нажал кнопку, состояние нажатого квадрата должно быть текущим игроком, который является свойством на доске.
Однако единственное решение, которое я придумал, заключалось в том, чтобы передать в UpdateState всю доску, а не только текущего игрока, что я считаю далеко не идеальным.
[RelayCommand]
private void UpdateState(TicTacToeBoardViewModel board) => State = board.CurrentPlayer;