>

계산기 스타일 그리드가 있습니다. Xamarin Forms에서 버튼의 텍스트를 명령 매개 변수로 전달하는 방법은 다음과 같습니다.

컨텐츠 리소스

<ContentPage.Resources>
    <ResourceDictionary>
        <Style x:Key="PhoneKeys" TargetType="Button">
            <Setter Property="BackgroundColor" Value="White"/>
            <Setter Property="FontSize" Value="36"/>
            <Setter Property="Command" Value="{Binding Source={x:Reference contactsListView}, Path=BindingContext.TapCommand1}"/>
            <Setter Property="CommandParameter" Value="Pass Button Text"/>
        </Style>
    </ResourceDictionary>
</ContentPage.Resources>

그리드 레이아웃

<Button Style="{StaticResource PhoneKeys}" Text="1" Grid.Row="1" Grid.Column="0" />
<Button Style="{StaticResource PhoneKeys}" Text="1" Grid.Row="1" Grid.Column="0" />
<Button Style="{StaticResource PhoneKeys}" Text="2" Grid.Row="1" Grid.Column="1" />
<Button Style="{StaticResource PhoneKeys}" Text="3" Grid.Row="1" Grid.Column="2" />
<Button Style="{StaticResource PhoneKeys}" Text="4" Grid.Row="2" Grid.Column="0" />
<Button Style="{StaticResource PhoneKeys}" Text="5" Grid.Row="2" Grid.Column="1" />
<Button Style="{StaticResource PhoneKeys}" Text="6" Grid.Row="2" Grid.Column="2" />
<Button Style="{StaticResource PhoneKeys}" Text="7" Grid.Row="3" Grid.Column="0" />
<Button Style="{StaticResource PhoneKeys}" Text="8" Grid.Row="3" Grid.Column="1" />
<Button Style="{StaticResource PhoneKeys}" Text="9" Grid.Row="3" Grid.Column="2" />
<Button Style="{StaticResource PhoneKeys}" Text="*" Grid.Row="4" Grid.Column="0" />
<Button Style="{StaticResource PhoneKeys}" Text="0" Grid.Row="4" Grid.Column="1" />
<Button Style="{StaticResource PhoneKeys}" Text="#" Grid.Row="4" Grid.Column="2" />


  • 답변 # 1

    이 구문을 사용하여 제어의 속성을 얻으십시오"{x : Reference myButton}" 완전한 버튼 객체를 얻기 위해 자체 버튼 참조를 보낼 수 있습니다

    스타일

       <Setter Property="CommandParameter" Value="{x:Reference myButton}" />
    
    

    XAML

    <Button x:Name="myButton" Style="{StaticResource PhoneKeys}" Text="#" Grid.Row="4" Grid.Column="2" />
    
    

    각 버튼의 버튼 이름을 정의하고 해당 버튼의 객체 참조를 가져옵니다.

    public ICommand TapCommand1 => new Command((obj) =>
    {
            var button = obj as Button;
            var text = button.Text;
    });
    
    
    와이즈 비즈

    OR Best way to define command parameter in each button with every button name

    <Button x:Name="myButton" Style="{StaticResource PhoneKeys}" CommandParameter="{x:Reference myButton}" Text="#" Grid.Row="4" Grid.Column="2" />

관련 자료

  • 이전 LLVM 난수 생성기에 시드를 동적으로 설정하는 방법은 무엇입니까?
  • 다음 python - Django에서 다 대다 필드의 여러 값에 대한 모델 결과를 필터링하는 방법