Я пытаюсь согреться с помощью ICommand-Data Binding.Для этого я сделал приложение, которое должно работать так: у меня есть 2 кнопки.Один из них «+1», он просто считает.Второй - «Multipy», который должен умножать значение на себя.Так, например: я нажимаю первый баттен 3 раза.теперь я нажимаю вторую кнопку: она составляет 3 * 3, и мы получили 9 в качестве нового значения.Первый butten работает, и я полагаю, что второй тоже не так уж и плох, но я не могу дать ему параметр, когда он выполняется.посмотрите:
public class CounterViewModel : BaseViewModel
{
public ObservableCollection<NumberViewModel> Nummer { get; private set; } = new ObservableCollection<NumberViewModel>();
int current = 0;
public ICommand CountUpCommand { get; private set; }
public ICommand MultiplyCommand { get; private set; }
public ICommand DelCommand { get; private set; }
Number Zahl = new Number();
public CounterViewModel()
{
CountUpCommand = new Command(CountUp);
DelCommand = new Command(SetZero);
//MultiplyCommand = new Command<int>(Multiply).Execute(current);
//MultiplyCommand = new Command<int>(current => Multiply(current));
// Both doesen´t work
}
public void CountUp()
{
// current = Nummer.Count + 1;
current = current + 1;
Nummer.Add(new NumberViewModel { Num = current });
}
public void Multiply(int _multiply)
{
current = _multiply * _multiply;
Nummer.Add(new NumberViewModel { Num = current });
}
также здесь мой "Number.cs":
public class Number
{
public int Num { get; set;}
}
и для интересующего моего файла xaml:
<StackLayout>
<Button Text="+1" Command="{Binding CountUpCommand}" />
<Button Text="Erg x Erg" Command="{Binding MultiplyCommand}"/>
<Button Text="DEL" Command="{Binding DelCommand}" />
</StackLayout>
<Label Text="--------------" />
<StackLayout>
<ListView ItemsSource="{Binding Nummer}">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell
Text="{Binding Num}"
/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
ноя не знаю, если это несерьезно.ты можешь мне помочь?