我有2个不同的图像,其想法是当你点击其中任何一个时,你应该进入一个新页面,新页面应该显示你选择的图像,我没有让它工作。我知道我可以制作2个不同的页面,但我想尽可能地优化我的代码。
这是代码:
public PicturePage ()
{
image1.Clicked += OnButtonClicked; //x:name of my image in xaml.
image2.Clicked += OnButtonClicked; //x:name of my second image in xaml.
}
async void OnButtonClicked(Object sender, EventArgs args)
{
Navigation.PushAsync (new PictureDetailPage ()); //how will the code know what the user clicked?
}
答案 0 :(得分:1)
每个Xamarin.Forms元素都有一个StyleId属性,您可以使用它来分配用户定义的值来识别元素。
在您的XAML中:
<Image x:Name="Image1" StyleId="Image1" ... />
并在后面的代码中:
async void OnButtonClicked(Object sender, EventArgs args)
{
Image image = (Image) sender;
// pass the value of the StyleId string to the detail page
Navigation.PushAsync (new PictureDetailPage (image.StyleId));
}