[英]Xamarin Add Image to StackLayout OnChange
我有個問題。 我有一個 TabbedPage,帶有 page1 和 page2。 在 page2 上是一個帶有一些圖像的網格。 當我單擊圖像時,我將圖像添加到集合中,因此我在第 1 頁上使用了 OnChange。 在第 1 頁上,我想將新圖像添加到該頁面上的 StackLayout。
到目前為止,這是我的代碼: 這是 page2 代碼:
private void LoadTemplateList()
{
string[] imageArray = { "Good_Question.png", "Excuse_Me.png"};
int imageIndex = 0;
for (var i = 0; i <= TemplateGrid.RowDefinitions.Count; i++)
{
if (i == 2)
{
for (var j = 0; j < TemplateGrid.ColumnDefinitions.Count; j++)
{
if (j == 1 || j == 3)
{
Image image = new Image { Source = imageArray[imageIndex], VerticalOptions = LayoutOptions.StartAndExpand };
var SelectImage = new TapGestureRecognizer();
SelectImage.Tapped += AddImageToCollection(image);
image.GestureRecognizers.Add(SelectImage);
TemplateGrid.Children.Add(image,j,i);
imageIndex++;
}
}
}
}
}
private EventHandler AddImageToCollection(Image image)
{
HomePage.SelectedImageCollection.Add(image);
return null;
}
但是當我單擊圖像時 GestureRecognizer 似乎不起作用...
我究竟做錯了什么?
我認為您希望在第 1 頁中收到有關添加新圖像的通知。
如果是這種情況,您必須向 HomePage.SelectedImageCollection.CollectionChanged 添加一個事件處理程序,因此:
public MemeBuilder()
{
InitializeComponent();
SizeChanged += (s, a) =>
{
myLayout.HeightRequest = this.Width;
myLayout.WidthRequest = this.Width;
};
HomePage.SelectedImageCollection.CollectionChanged += AddImageToPreview;
}
private void AddImageToPreview(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
{
var image = (Image)e.NewItems[e.NewItems.Count - 1];
}
....
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.