Xamarin.Forms.Button
을 Command
에 내 ViewModel에 CommandParameter
으로 전달하고 싶습니다. 예를 들어 코드 뒤에서이 작업을 수행하는 방법을 알고 있습니다. ...Xamarin.Forms 페이지에서 Button을 CommandParameter로 XAML에서 전달하는 방법은 무엇입니까?
XAML뷰 모델
<Button x:Name="myButton"
Text="My Button"
Command="{Binding ButtonClickCommand}"/>
XAML.cs
public partial class MyTestPage
{
public MyTestPage()
{
InitializeComponent();
myButton.CommandParameter = myButton;
}
}
(대부분의 속성은 간결 놓쳤다와)
public class MyViewModel : ViewModelBase
{
public MyViewModel()
{
ButtonClickCommand = new Command(
(parameter) =>
{
var view = parameter as Xamarin.Forms.Button;
if (view != null)
{
// Do Stuff
}
});
}
public ICommand ButtonClickCommand { get; private set; }
}
... 그러나 XAML 자체에 CommandParameter
을 선언 할 수 있습니까? 또는 다른 말로하면 버튼 자체에 매개 변수를 설정하는 바인딩 구문은 무엇입니까?
<Button x:Name="myButton"
Text="My Button"
Command="{Binding ButtonClickCommand}"
CommandParameter="{[WHAT WOULD GO HERE]}"/>
btw 이미 CommandParameter="{Binding RelativeSource={RelativeSource Self}}"
을 시도했지만 작동하지 않았습니다.
감사합니다,
왜 VM에 버튼이 필요합니까? –
안녕하세요 @AlexAnderson. 그래, 나도 슈퍼 예민하지 않아. Xamarin.Forms를 기존 Xamarin iOS 프로젝트에 도입하고 있습니다. 네이티브 UIPopoverController를 Xamarin.Form 페이지에서 보여줄 수있는 방법을 실험 해보자. Popups에 대한 Forms 지원이 없으므로 현재 주위를 둘러보고있는 장애물 중 하나에서 팝업을 표시 할 UIElement를 알 필요가 있습니다. 따라서 버튼을 전달합니다. 내가 말했듯이 ... 다소 기분이 이상합니다. 나는 아래에 당신의 제안을 시도 갈거야. 감사합니다 –
팝업에 관해서는'ContentPage.DisplayActionSheet (...) '의 구현을 확인하십시오 - 액션 시트가 충분하지 않은 경우이를 보여주는 코드를 리버스 엔지니어링 할 수 있습니다. 그리고 Button 레퍼런스를 얻는 것은 여전히 그것으로부터 UIButton 레퍼런스를 찾는 것을 요구할 것입니다. 사용자 지정 렌더러를 사용하면 더 편리해질 것입니다. –