它将从代码隐藏 firstGrid 和 secondGrid 对象中恢复。 但这些都在DataTemplate中,我可以从代码隐藏中回忆起它们吗?
谢谢。
这是我的代码:
private void WrapPanel_SizeChanged(object sender, SizeChangedEventArgs e)
{
btn1.Margin = new Thickness(0, 0, Math.Max(0, wp.ActualWidth - btn1.ActualWidth - btn2.ActualWidth), 0);
}
警告:在重复之前,代码适用于Xamarin表单pcl。与WPF的c#略有不同。
感谢
答案 0 :(得分:1)
使用DataTemplate时,绑定涉及您绑定的对象,而不是您可能使用过的ViewModel。
但不要害怕,因为Xamarin为我们提供了对这种物体进行治疗的方法!
我们假设您要点击图片:
<Button Image="nextBlueArrow.png" BorderColor="Transparent" BackgroundColor="Transparent" Clicked="clickmeNext" Grid.Column="3"></Button>
可能会成为
<Image Source="nextBlueArrow.png">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="clickmeNext"
CommandParameter="{Binding .}" />
</Image.GestureRecognizers>
</Image>
使用代码中的clickmeNext方法,如下所示:
public async void clickmeNext(object sender, EventArgs e)
{
Image imageSender = (Image)sender;
YourObject yourObject= (YourObject )imageSender.BindingContext;
//some actions on your instance of YourObject,
//which is the instance linked to the image
}
如果我没有回答你的问题,请不要犹豫,加入你的问题,以便更清楚。