Мне нужно выполнить привязку с помощью ICommand, но похоже, что определенный класс я объявляю, что моя ICommand даже не запускается. Я определил следующую кнопку в моем AccView.xaml UserControlПереплет от XAML к определенному классу
<Button x:Name="buttonInit" Content="init" Height="32" Cursor="Hand" Command="{Binding initCommand}" HorizontalAlignment="Left" Margin="24,43,0,0" VerticalAlignment="Top" Width="156" Style="{DynamicResource RoundCornerButton}" />
Я тогда с помощью конкретного SetAccValues.cs класса:
public class GetAccValues : AccView
{
public ICommand initCommand
{
get { return new DelegateCommand<object>(initBluetooth, canInit); }
}
private async void initBluetooth(object context)
{
int serviceNumb = 1;
await InitializeAsync(PerformAccOperations.Readings.None, serviceNumb);
if (SensorOK && Initialized != null) Initialized(this);
}
private bool canInit(object context)
{
return true;
}
}
Но проблема в том, что ICommand даже не срабатывает, когда я Нажмите кнопку. Где проблема в этом случае?.
Является ли 'GetAccValues' вашей моделью? Его очень мало, если это так. Установлено ли это свойство 'DataContext' представления? – BradleyDotNET
Да. Я где-то читал, что могу упростить использование объекта DelegateCommand, чем RelayCommand. Возможно, это может быть проблема. Я не знал, что при использовании команд DataContext необходимо установить определенный класс. – user3812509
Как вы ожидаете, что кнопка «найдет» ваш класс? Единственное, что может увидеть XAML, это {Binding initCommand}, как XAML найдет ваш «конкретный» класс? Вы должны либо установить DataContext/Source/RelativeSource. –